$sql = "SELECT id, name, adress FROM klanten WHERE adress IS NOT NULL";

wil maar niet werken.
ik wil dit:
als adress niet is ingevuld; laat de id en naam ook niet zien.
and stel ik heb meerdere LIKES hoe kan ik dan zo filteren dat hij uiteindelijk de resultaten met een 0 niet laat zien?
Volgens mij laat ie alleen de 0 zien als je een LIKE '%0%' hebt.
Ja, dat klopt alleen stel dat ik nu op een andere term zoek bijvoorbeeld op naam laat hij de namen zien die een 0 bevatten ik wil dat hij de resultaten waar een 0 bij adres staat niet wordt weergeven... ookal zoek je op naam en die tabel bevat een 0
Zorg ervoor dat je kolom in je tabel 'NULL' is. Dan kun je wel de clause WHERE kolom IS NOT NULL gebruiken.
Robby Alexander op 02/04/2012 13:56:28

Ja, dat klopt alleen stel dat ik nu op een andere term zoek bijvoorbeeld op naam laat hij de namen zien die een 0 bevatten


Als je op een andere term zoekt, waarom zou ie dan een 0 vinden? Lijkt mij niet logisch in ieder geval. Ik zie het probleem niet.
ja lijkt mij ook logisch je hebt ook gelijk maar de waarde komt terug met dingen die een null bevatten.

$sql = "SELECT id, name, address 
            FROM klanten 
            WHERE address IS NOT NULL
           AND address  LIKE '%" . mysql_real_escape_string($_POST['search']) . "%'
           OR name  LIKE '%" . mysql_real_escape_string($_POST['search']) . "%'";


Als ik dan zoek op 0 krijg ik nog steeds de waarden met een 0

mijn kolom address is NULL standaard in de database [correctie]
Gebruik nooit:
WHERE ... AND ... OR ...

Maar gebruik haakjes:
WHERE (... AND ...) OR ...
of
WHERE ... AND (... OR ...)
Deze twee geven heel andere resultaten.
ik snap het santhe het zijn niet de haakjes maar ik had iets beter moeten opletten


$sql = "SELECT id, name, address 
            FROM klanten 
            WHERE 
                address  LIKE '%" . mysql_real_escape_string($_POST['search']) . "%'
           OR name  LIKE '%" . mysql_real_escape_string($_POST['search']) . "%'";
          AND address > 0


dan zeg ik eigenlijk kijk naar de naam "zoekterm" EN of het adres groter is dan 0
Opgelost!

[size=xsmall]Toevoeging op 02/04/2012 14:56:10:[/size]

Bedankt voor de reacties! Santhe, Joran, Bas, Erwin, Allemaal bedankt especially Santhe die maakte me even wakker :)
Waarom vergelijk je met een getal????
ozzie je hebt gelijk maar als het niet is ingevuld heb ik tegen sql gezegd dat hij er een 0 moet zetten voor sql inject

Maar ik heb nog een vraagje... stel dat ik een gedeelte van een naam zoek en een gedeelte van het adress hoe moet dat dan?
Dus stel ik heb 3 maal records met de naam Hans en een hans woont op de Hoofdstraat en ik wil zoeken naar:
hans hooft hoe krijg ik dan alleen Hans op de Hooftstraat?

Reageren