Mijn query klopt meer geen ene bal en niemand kan mij helpen...wellicht is er hier wel iemand. Bij mij geeft de gebruiker aan op welke categorie hij.zij wilt zoeken of alles en welke omschrijving/trefwoord of alles wilt zoeken. Om te testen maak ik het alleen nu mogelijk om te zoeken op een categorie (dus niet alles) en bij zoekin (alles). Ik wil dus dat als de gebruiker kiest voor Optie bibliotheek en het veld is leeg of de gebruiker heeft het woord fiets opgegeven mijn script dan zoekt op categorie bibliotheek in zowel omschrijving als trefwoord naar het woord fiets.

Iemand een suggestie en kom aub niet met full text search want dat wil ik niet...En begin ook niet of mysqlescapestrings. Zou leuk zijn als het uberhaupt werkt voordat ik het ga beveiligen namelijk.

alvast bedankt.


<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
require_once("../../DBconnections/databaseconnectionuploaden.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>

<body>
<!--inputvelden voor gebruiker om te zoeken-->
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
	Zoek op categorie:<br>
	<select name="zoekopcategorie">
        <option value="Bibliotheek">Bibliotheek</option>
        <option value="Conferentie">Conferentie</option>
        <option value="BVBo7">NVB07</option>
        <option value="Onderwijs">Onderwijs</option>
        <option value="Onderzoek">Onderzoek</option>
        <option value="Publicatie">Publicatie</option>
        <option value="Raak project">Raak project</option>
        <option value="Related">Related</option>
        <option value="Site">Site</option>
        <option value="Subsidie">Subsidie</option>
        <option value="Under content creation">Under content creaction</option>
        <option value="Jongeren">Jongeren</option>
        <option value="Zonder categorie">Zonder categorie</option>
		<option value="alles" selected="selected">alles</option>
	</select><p>
	in:<br>
	<select name="zoekenin">
		<option value="omschrijving">Omschrijving</option>
		<option value="trefwoord">Trefwoord</option>
		<option value="alles" selected="selected">alles</option>
	</select><p>
    Met <b>alle</b> woorden (hoofdlettergevoelig):
	<input name="zoeken" type="text" id="zoeken" size="30"><P>
    <input type="submit" value="zoeken"><P>
</form>

<?php       
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	$zoeken = mysql_real_escape_string($_POST['zoeken']);
	$zoekopcategorie = mysql_real_escape_string($_POST['zoekopcategorie']);

//beveiliging zodat andere mensen niet mijn script kunnen gebruiken om in mijn database te komen
//beveiliging zodat andere mensen niet mijn script kunnen gebruiken om in mijn database te komen
if ($_POST['zoekopcategorie'] == 'Bibliotheek' || $_POST['zoekopcategorie'] == 'Conferentie' || $_POST['zoekopcategorie'] == 'BVBo7' || $_POST['zoekopcategorie'] == 'Onderwijs' || $_POST['zoekopcategorie'] == 'Onderzoek' || $_POST['zoekopcategorie'] == 'Publicatie' || $_POST['zoekopcategorie'] == 'Raak project' || $_POST['zoekopcategorie'] == 'Related' || $_POST['zoekopcategorie'] == 'Site' || $_POST['zoekopcategorie'] == 'Subsidie' || $_POST['zoekopcategorie'] == 'Under content creation' || $_POST['zoekopcategorie'] == 'Jongeren' || $_POST['zoekopcategorie'] == 'Zonder categorie' && $_POST['zoekenin'] == 'alles')
		{
//zoeken op alles de ingevoerde zoekwoord mag in 1 of meerdere tabellen voorkomen (zie or regel 60 OR)
			$zoekexploded = explode(' ', $zoeken);
//zorgt ervoor dat de variabelen weer leeg zijn (vooral belangrijk na een al reeds uitgevoerde zoekopdracht
			$like = "";			
			$like2 = "";
			foreach($zoekexploded as $k=>$v) 
			{
				if($k == 0) 
				{
					$like .= "`afbtrefwoord.trefwoord` LIKE '%".$v."%' ";
					$like2 .= "`afbomschrijving.omschrijving` LIKE '%".$v."%' ";
				}
				else
				{
					$like .= "AND `afbtrefwoord.trefwoord` LIKE '%".$v."%' ";
					$like2 .= "AND `afbomschrijving.omschrijving` LIKE '%".$v."%' ";
				}
			}
			$sql = "
				SELECT
					afblocatie.thumbnail,
					afbcategorie.categorie,
					afbomschrijving.omschrijving,
					afbtrefwoord.trefwoord,
				FROM
					afblocatie,
					afbcategorie,
					afbomschrijving,
					afbtrefwoord
				WHERE
					afblocatie.id = afbtrefwoord.id
					afblocatie.id = afbcategorie.id
					afblocatie.id = afbomschrijving.id
					afbcategorie.categorie LIKE '$zoekopcategorie' AND
					".$like." OR
					".$like2."
			";
		}
		
	$res = mysql_query($sql);
	
	if(!$res)
	{
		trigger_error(mysql_error().'<br />In query: '.$sql);
	}
	else
	{
		if (mysql_num_rows($res) >= 1)
		{
			while ($row = mysql_fetch_array($res))
			{
//weergave van zoekresultaat
			echo '<p><img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
			}
			echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
		}
		else
		{
			echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
			echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
		}
	}
}
?>
</body>
</html>

Reageren