Hoi iedereen,

Ik ben bezig aan een website waar iemand, dvm het opgeven van een vakgebied, subvakgebied, provincie, postcode + straal, datum van plaatsing en een zelf in te vullen zoekterm, kan zoeken naar een aannemer.

Nu heb ik alles in de mysqldb klaar en wil ik de "zoekfunctie" via een mysql query uit gaan voeren. Dus ik ga zoeken in verschillende kolommen met de opgegeven waarden door de bezoeker. Dan weet ik hoe ik dit programmeer.

Maar stel iemand zoekt enkel op provincie, postcode en straal, of enkel via een zoekterm en de andere velden blijven leeg?

Dan werkt in mijn mysqlquery na "WHERE" mijn AND niet meer want daar vind hij geen opgegeven waarden terug.

Is er m.a.w. een mogelijkheid om in een mysqlquery het volgende te programmeren:
als de velden allemaal zijn ingevuld alles vergelijken, is niet alles ingevuld,
enkel de ingevulde velden vergelijken.

Of moet ik vooraleer ik de mysqlquery aanroep, eerst alles checken via if(.. of het ingevuld is en voor iedere situatie een mysqlquery uitwerken?

Ik hoop dat mijn probleem duidelijk is.
Ik ben geen pro dus heb het zo duidelijk mogelijk proberen uit te leggen.

Alvast bedankt!
Voor elk veld zoiets doen:

<?php
// start de query
$sql = "SELECT dit, dat, en, meer
FROM tabel
WHERE 1 = 1 ";

// vul aan met wat info
if(isset($_POST['postcode'])
{
$sql .= "AND postcode BETWEEN ".($_POST['postcode'] - 100)." AND ".($_POST['postcode'] - 100)." ";
}

// hier dus je eigen dingen etc

// maak sql af
$sql .= " ORDER BY postcode DESC
LIMIT 0, 25";
?>


Hoi Eddy,

Super bedankt!

Hier kan ik zeker mee verder!
@Eddy: is het bewust dat je op regel 10 2x - 100 hebt staan?
Ik zou zeggen dat hij de tweede keer + 100 bedoelde

Reageren