$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.
kan je dit niet uitwerken met php wanneer je de gebruikers laat zien die WEL een adres ingevuld hebben?
dat weet ik dus niet... dat zou mooi zijn...
$sql = "SELECT id, name, adress FROM klanten WHERE adress <> ''";
hey ozzie ja ik heb ook nou zoiets:

$sql = "SELECT id, name, adress FROM klanten WHERE adress > 0 ";

Dus als je dingen wilt laten zien die alleen zijn ingevuld moet je een waarde opgeven met groter dan 0.
Dan kun je in je sql ingeven dat hij standaard 0 moet invullen als er niets staat of iets dergelijks.
Alleen is dit niet netjes wat je doet. Een adres is een string (een tekst) en die ga jij nu vergelijken met een getal. Ja dat werkt, maar het is zeker geen nette oplossing.
pff nu wil ik de WHERE clausule iets uitbreiden maar het wil niet echt:

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

Stel ik wil dat sql de waarden met 0 niet moet laten zien maar wel de zoekactie...
Hoe laat ik het zo filteren dat hij de zoekactie uitvoert maar de records waar een 0 in zit niet laat zien ?
Je kunt dan gewoon controleren of het veld 'adress' (is trouwens met dubbel d, of één s ;-)) niet gelijk is aan '0':


WHERE adress != 0 AND adress LIKE ...

Netter zou het echter zijn om het veld gewoon leeg te laten als er geen adres ingevuld is en dan te controleren of het veld leeg is of niet.
Thanx ik ga het proberen wanneer ik over een paar uur weer op kantoor ben!
Joren de Wit op 01/04/2012 18:18:20

Je kunt dan gewoon controleren of het veld 'adress' (is trouwens met dubbel d, of één s ;-)) niet gelijk is aan '0':


WHERE adress != 0 AND adress LIKE ...


Dit heeft natuurlijk niet zoveel zin. Als je al een LIKE statement erin zet, dan worden daarmee automatisch al alle "lege" velden eruit gefilterd. Dat "address != 0" is dus niet meer nodig. Tenzij je een lege waarde opgeeft in het LIKE statement, maar dat is al helemaal niet handig.
Daarnaast vraag ik me uberhaupt af waarom je een != 0 erin zou willen zetten (of > 0). Als het een string is kan je ook gewoon op een lege string testen:

SELECT id, name, adress 
FROM klanten 
WHERE adress <> ''

Hiermee worden null waardes eruit gehaald en lege strings.

PS ik heb <> als operator gebruikt en niet != beide werken wel.

Moet je juist niet de controle hebben op het form? Kan aan mij lichen maar zo gaat het meestal....

Reageren