Autor | Zpráva | ||
---|---|---|---|
kababus Profil * |
#1 · Zasláno: 22. 11. 2010, 18:11:44
Dobrý den,
prosím o radu, mám dotaz: $vyber = mysql_query("SELECT DISTINCT * FROM tabulky WHERE SUBSTRING(id,1,3)='$_GET[promenna]' ORDER BY id "); a potřeboval bych aby se mi vybraly výsledky místo pro $_GET[promenna] pro celé pole, je toto možné? Problém je v tom že nevím kolik bude těch proměnných, takže se mi nechce to pole rozstrkávat do samostatných proměnných. Moc děkuji! |
||
king26 Profil |
#2 · Zasláno: 22. 11. 2010, 19:29:01
Pomocí IN.
Vypadalo by to nějak takto: $vyber = mysql_query("SELECT DISTINCT * FROM tabulky WHERE SUBSTRING(id,1,3) IN (".implode(", ", $_GET[promenna]).") ORDER BY id"); |
||
kababus Profil * |
#3 · Zasláno: 22. 11. 2010, 19:48:39
Moc Vám děkuji za snahu, ale bohužel:
WHERE SUBSTRING(id,1,3)=IN (".implode(", ", $_GET[promenna]).") ORDER BY You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN () ORDER BY id' at line 1 |
||
Alphard Profil |
#4 · Zasláno: 22. 11. 2010, 19:56:01
kababus:
Nápad správný, jen to dolaďte. Substring vrací string, takže musíte porovnávat taky s řetězcem (uvozovky). Stejně tak get proměnná už není součástí řetězce, takže klíč do apostrofů (uvozovek). Dotaz si vypište a syntakticky opravte. |
||
kababus Profil * |
#5 · Zasláno: 22. 11. 2010, 20:13:31
Díky, teď se asi zeptám jako trouba, ale :takže klíč do apostrofů - co je klíč?
|
||
kababus Profil * |
#6 · Zasláno: 22. 11. 2010, 20:18:27
Teď si tedy vůbec nejsem jistý, ale tohle by tedy bylo ok? Moc Vám děkuji za pomoc.
WHERE SUBSTRING(id,1,3)=IN (".implode("',' ", $_GET["promenna"]).") ORDER BY |
||
Alphard Profil |
#7 · Zasláno: 22. 11. 2010, 20:26:40
$vyber = mysql_query("SELECT DISTINCT * FROM tabulky WHERE SUBSTRING(id,1,3) IN ('".implode("', '", $_GET['promenna'])."') ORDER BY id"); Když pominu zabezpečení apod. Nejjednoduší by bylo použí nějaký pokročilejší db layer. |
||
kababus Profil * |
#8 · Zasláno: 22. 11. 2010, 20:38:58
Moc Vám děkuji že se mnou tak ztrácíte čas, ale tohle se bohužel chová jakoby žádný záznam neodpovídal.
Proměnná vypadá například takto: 133;112;199 |
||
AM_ Profil |
#9 · Zasláno: 22. 11. 2010, 21:06:28
není id náhodou číselného typu?
|
||
kababus Profil * |
#10 · Zasláno: 22. 11. 2010, 21:17:57
Ano, to je.
|
||
Alphard Profil |
#11 · Zasláno: 22. 11. 2010, 21:23:50
kababus:
„Proměnná vypadá například takto: 133;112;199“ To není pole. Je to normální řetězec. explode() Vzhledem k číselnému typu ty aspostrofy možná nebudou nutné (nejsem si jistý, jestli MySQL správně porovná string a integer), ale fungovat to musí i s nimi. |
||
kababus Profil * |
#12 · Zasláno: 22. 11. 2010, 21:32:59
Moc všem děkuji, již je to ok. :) Původně jsem to tam měl, ale vypadlo mi zase to explode...
|
||
Časová prodleva: 13 let
|
0