Kom ihåg mig?
Home Menu

Menu


MySQL förfrågan: mysql_query, WHERE-satser

 
Ämnesverktyg Visningsalternativ
Oläst 2007-01-03, 16:32 #11
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Du får vänta med att läsa...

jag vet inte vad du menar med "radnummer", men första varvet i loopen är ju rimligen rad ett osv...
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-03, 16:56 #12
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Har löst detta nu. Jag förstår inte heller vad jag menar

Det fick bli en massa rader med förfrågningar och if-satser...

Kod:
if ($cvalue=="dju")
 {
$a = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 1"));
$b = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 1,2"));
$c = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 2,3"));
$d = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 3,4"));
$e = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 4,5"));
$f = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 5,6"));
$g = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 6,7"));
$h = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 7,8"));
$i = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 8,9"));
$j = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 9,10"));
$k = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 10,11"));
$l = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 11,12"));
$m = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 12,13"));
$n = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 13,14"));
$o = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 14,15"));
$p = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 15,16"));
 }
elseif ($cvalue=="lan")
 {
$a = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 1"));
$b = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 1,2"));
$c = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 2,3"));
$d = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 3,4"));
$e = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 4,5"));
$f = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 5,6"));
$g = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 6,7"));
$h = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 7,8"));
$i = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 8,9"));
$j = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 9,10"));
$k = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 10,11"));
$l = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 11,12"));
$m = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 12,13"));
$n = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 13,14"));
$o = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 14,15"));
$p = mysql_fetch_row(mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='lan' ORDER BY `id` DESC LIMIT 15,16"));
 }

...

else
 {
$a = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y)"));
$b = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-1)"));
$c = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-2)"));
$d = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-3)"));
$e = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-4)"));
$f = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-5)"));
$g = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-6)"));
$h = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-7)"));
$i = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-8)"));
$j = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-9)"));
$k = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-10)"));
$l = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-11)"));
$m = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-12)"));
$n = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-13)"));
$o = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-14)"));
$p = mysql_fetch_row(mysql_query("SELECT link, text FROM foto WHERE id IN ($y-15)"));
 }
Får väl ta och förbättra koden senare. Huvudsaken just nu är att det ska funka... och det gör det ... bara lite segt.
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-03, 17:22 #13
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Pardon my french men du är ju inte riktigt klok...

För det första så kommer till exempel "LIMIT 1,2" returnera två rader (varav du bara ser den första eftersom du bara gör en mysql_fetch. Detta eftersom andra siffran anger antalet rader i svaret och första "hur många som skall skippas" så alla dina LIMIT skall sluta med ",1" i nuvarande utförande.

Och om du av någon anleding vägrar loopa så skulle du förenkla din kod (och förbättra prestanda) så skall du göra så här:
Kod:
if ($cvalue=="dju")
{
$rs = mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT 15");
$a = mysql_fetch_row($rs);
$b = mysql_fetch_row($rs);
$c = mysql_fetch_row($rs);
...
$p = mysql_fetch_row($rs);
}
...
Men jag tror du behöver lära dig:
1) Hur man använder en databas och vad det är rent allmänt.
2) loopar i PHP (ja eller att programmera över huvud taget).

Jo det är kanske en ganska hård ton i mitt inlägg, men jag måste säga att jag (helt utan ironi) är mäkta imponerad av att du över huvud taget lyckats skapa en sida med en databas i botten. Om jag haft dina kunskaper hade jag nog givit upp för länge sedan så all heder till dig!

Några länkar som hjälp på vägen:
http://www.freewebmasterhelp.com/tutorials/phpmysql
http://www.php-mysql-tutorial.com/
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-03, 18:09 #14
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Citat:
Ursprungligen postat av eg0master
Pardon my french men du är ju inte riktigt klok... *
För det första så kommer till exempel LIMIT 1,2 returnera två rader (varav du bara ser den första eftersom du bara gör en mysql_fetch. Detta eftersom andra siffran anger antalet rader i svaret och första hur många som skall skippas så alla dina LIMIT skall sluta med ,1 i nuvarande utförande.
HAHAHAHhaa
Vi tar det imorgon

Citat:
Ursprungligen postat av eg0master
Kod:
if ($cvalue=="dju")
{
$rs = mysql_query("SELECT link, text, cat, id FROM foto WHERE cat='dju' ORDER BY `id` DESC LIMIT >>>16<<<");
$a = mysql_fetch_row($rs);
$b = mysql_fetch_row($rs);
$c = mysql_fetch_row($rs);
...
$p = mysql_fetch_row($rs);
}
...
Detta funkade. Ska använda loops lite senare.

!Konstigt nog försvinner "$" tecken då man klickar på "Snabbcitera"
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-04, 00:23 #15
mersault mersault är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 119
mersault mersault är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 119
alltinggratis>> Det där var det roligaste jag läst på WN på länge... =) Hoppas du bjuder på det skrattet.

Instämmer med egomaster men tipsar också om php.net! Leta upp mysql-funktionerna där så hittar du kodexempel på hur du ska använda funktionerna (med loopar!) på ett rationellt sätt.
mersault är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-04, 12:09 #16
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Citat:
Originally posted by mersault@Jan 4 2007, 01:23
alltinggratis Det där var det roligaste jag läst på WN på länge... =) Hoppas du bjuder på det skrattet.
Absolut! Tack för att du uppskattar det =)))

Nej, men det är mitt första försök att hantera en MySQL databas med php, så det är klart att jag inte har några kunskaper inom detta, men jag har redan under försökets gång lärt mig en massa!
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-04, 22:44 #17
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Visste inte att det gick att krångla till en enkel fråga så extremt...

ingångsvärdet $cvalue är antingen 'dju' eller 'lan' eller något annat...

$query =" SELECT link, text, cat, id FROM foto WHERE cat='$cvalue' ORDER BY `id` DESC LIMIT 16";

$result=mysql_query($query);

//det vanligaste sättet att loopa igenom ett resultset i php:
while($r=mysql_fetch_row($result)){

//gör nåt kul med ditt resultat, till exempel skriv ut det rad för rad:
echo " Link: $r[0], Text: $r[1], Cat: $r[2], id: $r[3].
";

}

Efter att ha gjort det här ett par hundra gånger så kommer du inte att tveka...
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:22.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017