Autor | Zpráva | ||
---|---|---|---|
smisek05 Profil |
#1 · Zasláno: 20. 10. 2008, 16:30:04 · Upravil/a: smisek05
Zdravim,
mam formular a v nem 3 policka se seznamem. jakym zpusobem mam predat hodnoty do MySQL dotazu? napadlo me to udelat takhle: $vysledek = mysql_query('SELECT * FROM `automaty` WHERE `model` LIKE \'%'.$dotaz2.'%\' AND `artikl` = '.$dotaz1.' AND `stav` LIKE \'%'.$dotaz3.'%\''); ale pokud uzivatel nevybere neco ze vsech seznamu hodi me to chybu |
||
Tomashek Profil |
#2 · Zasláno: 20. 10. 2008, 16:56:32
nevím co ma formulá udělat, ale zkus předtím použít podmínku :
if(!empty($dotaz1) and !empty($dotaz2) and !empty($dotaz3)){$vysledek = mysql_query('SELECT * FROM `automaty` WHERE `model` LIKE \'%'.$dotaz2.'%\' AND `artikl` = '.$dotaz1.' AND `stav` LIKE \'%'.$dotaz3.'%\'');} |
||
smisek05 Profil |
#3 · Zasláno: 21. 10. 2008, 13:30:16 · Upravil/a: smisek05
diky za radu :-)
mam 3 formularove pole se seznamem, v kazdem seznamu ma uzivatel mozno vybrat urcite parametry $dotaz1 - 3, podle kterych se prohleda dtb a vypise. muzu si udelat podminku jak jsi psal if(!empty($dotaz1) and !empty($dotaz2) and !empty($dotaz3)){$vysledek = mysql_query('SELECT * FROM `automaty` WHERE `model` LIKE \'%'.$dotaz2.'%\' AND `artikl` = '.$dotaz1.' AND `stav` LIKE \'%'.$dotaz3.'%\'');} elseif(!empty($dotaz1) and !empty($dotaz2)){$vysledek = mysql_query('SELECT * FROM `automaty` WHERE `model` LIKE \'%'.$dotaz2.'%\' AND `artikl` = '.$dotaz1);} atd .. problem je v tom ze mam celkem dlouhy kod ... melo by to jit nejak jednoduseji ale me nenapada jak. a dalsi problemek je, ze uzivatel by mel mit moznost v kazdem seznamu vybrat vice nez jednu polozku ... a tady se uz hodne ztracim ... |
||
bohyn Profil * |
#4 · Zasláno: 21. 10. 2008, 13:40:39
Tak to budes muset asi zpracovat podminku zvlast v nejakym cyklu a pak vlozit do dodtazu
$where = ""; // opakovat pro vsechny tri podminky foreach($_GET['dotaz1'] as $val) { $where .= ... } a pak $query = "SELECT * FROM `automaty` WHERE ".$where; $vysledek = mysql_query($query); |
||
Časová prodleva: 17 let
|
0