Autor Zpráva
noem
Profil
Mám problém s výberom z db, prosím vás o radu. Pokúsim sa ho opísať na jednoduchom príklade.
V db mám tabulku knihy. Je v nej jeden záznam

id | nazov | rok
-----------------------
1 | Kniha | 2004

Máme teda knihu s názvom Kniha, ktorá bola vydaná v roku 2004 (má id 1). V skripte mám povedzme premennú s názvom $roky, ktorá obsahuje roky oddelené ; .Potrebujem z db vybrať knihu, ktorej rok zodpoveda aspon jednemu roku z premennej $roky.

Teraz mám skript :

$roky = '2001;2002;2003;2004;2005';
$sql = mysql_query("SELECT * FROM kniha WHERE '%rok%' LIKE '$roky'");

Toto však vráti 0 výsledkov. To '%rok%' sa mi tam nepozdáva, čím sa to dá nahradiť ? Ako by ste to urobili vy ?
noem
Profil
Ja viem, že bude asi veľmi jednoduche riešenie, ale neviem ake :( Poraďte, prosím Vás ak viete...
mambo5
Profil *
nevim jestli to neni moc slozite, treba to jde jednodusseji, ale tu promennou $roky bych rozkouskoval do pole pomoci split a pak bych pole prosel foreach
noem
Profil
Neviem si celkom dobre predstavit ako to myslis, mohol by si, prosim, napisat nejaku malu ukazku ?
noem
Profil
Len by som potreboval vediet syntax, ako spravne nahradit hociaky pocet znakov v tom dotaze
24k
Profil *
tak snad pouzit IN $roky

a $roky oddelit carkou pres IMPLODE ..
JersyWoo
Profil
A co zkusit definici between(čísla mezi čísly)?

$sql = mysql_query("SELECT * FROM kniha WHERE 'rok' BETWEEN 2001 AND 2005'");
souki
Profil
$podminka=Explode(";",$roky);
foreach($podminka as $rok){
$sql = mysql_query("SELECT * FROM kniha WHERE rok=$rok");
}


takhel projdeš postupně všechny roky co máš v $roky..... nebo...
$podminka=Explode(";",$roky);
$podminka=" WHERE rok=".Implode(" OR rok=",$podminka);
$sql = mysql_query("SELECT * FROM kniha $podminka");
Toto téma je uzamčeno. Odpověď nelze zaslat.

0