Archief - MYSQL: meerdere zoektermen in 1 querry

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Excise

Legacy Member
Goede morgend,
ik zou meerdere zoektermen in 1 query moeten steken maar tot hiertoe lukt het niet.

dit zijn de dropdown menus met een input functie erachter
PHP:
<?
$zoeken = $_POST["zoek"];
$keuze = $_POST["sorteren"];
$specifieer = $_POST["specifiek"];
$verfijn = $_POST["verfijn"];
?>
<form method="post" action="<?= $_SERVER['PHP_SELF'];?>">
      <select name="sorteren" size="1">
        <option value="klant">Klant</option>
        <option value="postnummer">Postnummer</option>
        <option value="maatnaam.naammaat">Bandenmaat</option>
        <option value="merknaam.naammerk">Bandenmerk</option>
        <option value="depot">Depot</option>
        <option value="datum">Datum</option>
      </select>
     <input type="text" name="zoek" size="30" maxlength="50">

      <select name="verfijn" size="1">
        <option value="klant">Klant</option>
        <option value="postnummer">Postnummer</option>
        <option value="maatnaam.naammaat">Bandenmaat</option>
        <option value="merknaam.naammerk">Bandenmerk</option>
        <option value="depot">Depot</option>
        <option value="datum">Datum</option>
      </select>
     <input type="text" name="specifiek" size="30" maxlength="50">
     <input type="submit" value="Zoeken">
    </form>
nu als ik het slechts met 1 menu doe wekt het al maar met 2 nog niet.

dit is voor 1 dropdown menu:
PHP:
if ($zoeken == "")
$query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten ORDER BY klant";
else {
	
	if($keuze == "klant") {
	$query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten WHERE klant = '$zoeken' ORDER BY klant";
	}
	elseif($keuze == "postnummer") {
	$query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten WHERE postnummer = '$zoeken' ORDER BY klant";
	}
	elseif($keuze == "maatnaam.naammaat") {
	$query = "SELECT klanten.volgnummer, klanten.klant, klanten.tel, klanten.email, klantmaat.volgnummer, klantmaat.nummermaat, maatnaam.nummermaat, maatnaam.naammaat FROM klanten, klantmaat, maatnaam WHERE maatnaam.naammaat = '$zoeken' AND maatnaam.nummermaat=klantmaat.nummermaat AND klantmaat.volgnummer=klanten.volgnummer ORDER BY klanten.klant";
	 
	}
	
	elseif($keuze == "merknaam.naammerk") {
	$query = "SELECT klanten.volgnummer, klanten.klant, klanten.tel, klanten.email, klantmerk.volgnummer, klantmerk.nummermerk, merknaam.nummermerk, merknaam.naammerk FROM klanten, klantmerk, merknaam WHERE merknaam.naammerk = '$zoeken' AND merknaam.nummermerk=klantmerk.nummermerk AND klantmerk.volgnummer=klanten.volgnummer ORDER BY klanten.klant";
	}
	elseif($keuze == "depot") {
	$query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten WHERE depot = '$zoeken' ORDER BY klant";
	}
	else {
	$query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten WHERE datum = '$zoeken' ORDER BY klant";
	}


}

beetje ingewikkeld dus , iemand een ide?

passero

Legacy Member
is toch niet zo moeilijke

select .... from ... where $keuze = '$zoeken'

Excise

Legacy Member
en voor de 2de drop down menu? kunt ge 2 keer WHERE gebruiken of AND WHERE ?

[BAT] Hydra

Legacy Member
Beter kan je

PHP:
if ($zoeken == "")
$query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten ORDER BY klant";
else {
    
    if($keuze == "klant") {
    $query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten WHERE klant = '$zoeken' ORDER BY klant";
    }
    elseif($keuze == "postnummer") {
    $query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten WHERE postnummer = '$zoeken' ORDER BY klant";
    }
    elseif($keuze == "maatnaam.naammaat") {
    $query = "SELECT klanten.volgnummer, klanten.klant, klanten.tel, klanten.email, klantmaat.volgnummer, klantmaat.nummermaat, maatnaam.nummermaat, maatnaam.naammaat FROM klanten, klantmaat, maatnaam WHERE maatnaam.naammaat = '$zoeken' AND maatnaam.nummermaat=klantmaat.nummermaat AND klantmaat.volgnummer=klanten.volgnummer ORDER BY klanten.klant";
    
    }
    
    elseif($keuze == "merknaam.naammerk") {
    $query = "SELECT klanten.volgnummer, klanten.klant, klanten.tel, klanten.email, klantmerk.volgnummer, klantmerk.nummermerk, merknaam.nummermerk, merknaam.naammerk FROM klanten, klantmerk, merknaam WHERE merknaam.naammerk = '$zoeken' AND merknaam.nummermerk=klantmerk.nummermerk AND klantmerk.volgnummer=klanten.volgnummer ORDER BY klanten.klant";
    }
    elseif($keuze == "depot") {
    $query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten WHERE depot = '$zoeken' ORDER BY klant";
    }
    else {
    $query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten WHERE datum = '$zoeken' ORDER BY klant";
    } 
}

Veranderen door

PHP:
if ($zoeken == "") {
	$zoeken = "true"; $keuze = "true";
}
if($keuze == "maatnaam.naammaat" || $keuze == "merknaam.naammerk") {
	$m = ($keuze == "maatnaam.naammaat") ? "maat" : "merk";
	$query = "SELECT klanten.volgnummer, klanten.klant, klanten.tel, klanten.email, klant" . $m . "volgnummer, klant" . $m . ".nummer" . $m . ", " . $m . "naam.nummer" . $m . ", " . $m . "naam.naam" . $m . " FROM klanten, klant" . $m . ", " . $m . "naam WHERE " . $m . "naam.naam" . $m . " = '$zoeken' AND " . $m . "naam.nummer" . $m . "=klant" . $m . ".nummer" . $m . " AND klant" . $m . ".volgnummer=klanten.volgnummer ORDER BY klanten.klant";
}
else {
	$query = "SELECT volgnummer, klant, tel, email, postnummer, bandenmaat, bandenmerk, datum, depot FROM klanten WHERE '$keuze' = '$zoeken' ORDER BY klant";
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan