Autor Zpráva
Johnik
Profil
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
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
Johnik
... WHERE `id` = $id ...
Johnik
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: