Ik zou graag willen weten hoe de query eruit moet komen te zien wanneer ik wil zoeken in twee of meer velden.

momenteel heb ik dit, maar dit werkt niet.
	$query = " SELECT * FROM vacatures WHERE vacature_titel LIKE '%".$_POST['vacature_titel']."%' AND vacature_diensverband = ".$_POST['vacature_diensverband'].""; 


Bij de tweede ook LIKE zetten en OR gebruken.

Edit:
$query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' OR vacature_diensverband LIKE '%" . $_POST['vacature_diensverband'] . "%'";
Jup dat was het :)
Was er bijna...bedankt!

Weer iets geleerd.
Nu het volgende:

ik heb een drop down list waaronder 6 opties ($_POST['vacature_dienstverband']) staan.
Echter moet de optie Geen Voorkeur veranderen in niets. zodat hij hierop niet zoekt

Stuke van de code:


<select name="vacature_dienstverband" value="<?php echo $_POST['vacature_dienstverband'] ?>">
	  <option>Geen Voorkeur</option>
	  <option>-------------</option>
	  <option>fulltime</option>
	  <option>Parttime</option>
	  <option>Freelance</option>
	  <option>Stage</option>
    </select></p>


Dus wanneer <option>Geen Voorkeur</option> of
<option>-------------</option> aangeklikt is, moet hij dus eigenlijk niets invullen in plaats van Geen Voorkeur of -------------

Ik hoop dat het duidelijk is!
Alvast bedankt.
<option value="waardevanvariabele">Geen voorkeur</option>

Edit: verwerk trouwens nooit postvariabelen regelrecht in je query, dat is erg gevoelig voor MySQL-injection.
Kan je die opties niet gewoon weghalen?
Zou kunnen...alleen dan wordt er dus altijd gezocht op dienstverband.
Anders checken of er iets is geselecteerd en query aanpassen.
Klinkt logisch.
Ik ben net pas begonnen met php dus als jullie mij misschien kunnen helpen?

ik heb er dit van gemaakt:


<?php
	if($_POST['vacature_dienstverband'] == "Geen Voorkeur")
	{
	$query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' ";
	$result = mysql_query($query) or die ('fout: '.mysql_error());
	$aantal = mysql_num_rows($result);
	}else{
	if (!empty($_POST))
	{
	//query samenstellen
	$query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' AND vacature_dienstverband LIKE '%" . $_POST['vacature_dienstverband'] . "%'";
	$result = mysql_query($query) or die ('fout: '.mysql_error());
	$aantal = mysql_num_rows($result);
	}
	else
	{
	}
?>

Dit werkt niet. Wat is er fout?
Je hoeft natuurlijk niet alles dubbel te maken, dat geeft alleen maar meer kans op fouten. Ik zou het zo doen:

if(....)
{
$query = "......";
}
else (of elseif())
(
$query = "......";
}
en dan pas de rest:
$result = .......

Edit: Quotes aangepast, toets hapert af en toe.
Tnx! Het werkt.

Opgelost met de manier van hierboven.
Ik moet hem nu nog iets meer uitbreidden. Wellicht dat ik binnenkort met nog wat vraagjes kom.

Nogmaals bedankt.

Reageren