Autor | Zpráva | ||
---|---|---|---|
Johnik Profil |
#1 · Zasláno: 6. 3. 2009, 22:49:45 · Upravil/a: Johnik
Ahoj, nemůžu vymyslet tuto podmínku:
$selmp = mysql_db_query($dbname, "SELECT * FROM `table` WHERE `id` = '".$id."' AND (`title` LIKE '%".$_POST["search"]."%' OR `interpret` LIKE '%".$_POST["search"]."%' OR `album` LIKE '%".$_POST["search"]."%' OR `kind` LIKE '%".$_POST["search"]."%') ORDER BY ".$order, $link); A správně vybírá jen z title. Já ale potřebuji aby vybral pouze ty řádky, kde je id = $id a pak se musí rovnat (nalézt) hledanému slovu. Děkuji |
||
Joker Profil |
#2 · Zasláno: 6. 3. 2009, 23:33:17
Hmm, tohle by mělo fungovat. Zkuste si nechat vypsat konkrétní už sestavený dotaz.
Dvě poznámky: 1. Samozřejmě nevím, jak je tabulka organizovaná, ale běžně by podle ID měl vyhovovat nejvýše jeden řádek (tj. žádný nebo jeden), takže pokud je známo ID, ta druhá podmínka mi už připadá skoro zbytečná. 2. Neposílal bych do databáze přímo hodnoty z $_POST bez ošetření SQL injection. |
||
tiso Profil |
#3 · Zasláno: 7. 3. 2009, 02:35:08 · Upravil/a: tiso
Johnik
... WHERE `id` = $id ... |
||
Johnik Profil |
#4 · Zasláno: 7. 3. 2009, 12:09:19
Nakonec jsem to obrátil, takže v závorce je like a po něm následuje AND id = $id.
Joker To mám ošetřené výše v podmínce, když nalezne nepovolený znak, nespustí sql dotaz. |
||
Časová prodleva: 17 let
|
0