Autor | Zpráva | ||
---|---|---|---|
jerremy Profil * |
#1 · Zasláno: 3. 4. 2012, 18:39:35
Pekný podvečer,
narazil som na problém vo svojom skripte ak vyberám hodnoty pomocou WHERE ... BETWEEN ... AND Pre názornosť posielam kód: switch ($loc) { case 1: $vysledek=mysql_query("select * from odbornik WHERE mesto BETWEEN 1 AND 14 ORDER BY meno ASC "); case 15: $vysledek=mysql_query("select * from odbornik WHERE mesto BETWEEN 15 AND 19 ORDER BY meno ASC "); case 20: $vysledek=mysql_query("select * from odbornik WHERE mesto BETWEEN 20 AND 27 ORDER BY meno ASC "); case 28: $vysledek=mysql_query("select * from odbornik WHERE mesto BETWEEN 28 AND 35 ORDER BY meno ASC "); case 36: $vysledek=mysql_query("select * from odbornik WHERE mesto BETWEEN 36 AND 49 ORDER BY meno ASC "); case 50: $vysledek=mysql_query("select * from odbornik WHERE mesto BETWEEN 50 AND 59 ORDER BY meno ASC "); case 60: $vysledek=mysql_query("select * from odbornik WHERE mesto BETWEEN 60 AND 67 ORDER BY meno ASC "); case 68: $vysledek=mysql_query("select * from odbornik WHERE mesto BETWEEN 68 AND 79 ORDER BY meno ASC "); default: $vysledek=mysql_query("select * from odbornik WHERE mesto=".$loc." ORDER BY meno ASC "); } Ďakujem |
||
Joker Profil |
#2 · Zasláno: 3. 4. 2012, 20:30:47
jerremy:
Jelikož v case větvích chybí break , v $vysledek bude uložený vždycky výsledek dotazu, který je v default (protože je poslední).
Například pokud bude $loc=1, provedou se postupně všechny dotazy (a ten poslední zůstane uložený v $vysledek). Krom toho tenhle styl programování je dost špatně udržovatelný, úplně stejný dotaz je v kódu v 8 kopiích. Pokud různé větve vedou nastavují různé parametry témuž dotazu, je lepší jen nastavovat ty parametry a dotaz pak provést na jednom místě. |
||
jerremy Profil * |
#3 · Zasláno: 3. 4. 2012, 20:54:29
Joker:
Dakujem za vysvetlenie. Opät skolacka chyba. Nemam rad tie rozdiely v roznych programovacich jazykoch, kedze v skole riesime obycajne delphi. |
||
Časová prodleva: 12 let
|
0