Ich versuche, eine Multi-Option-Suche zu erstellen. Ich habe überall hingeschaut und finde keine passende Lösung, obwohl so viele Webseiten das haben. So habe ich mein HTML-Formular (die ein wenig nicht zu langweilen abgeschnitten Ihnen):PHP Mysqli Erweiterte Suche (Multi-Optionen)
<form method="get" id="searchForm" name="searchForm" action="search-text.php" >
<select name="make" id="make">
<option value="">ANY MAKE</option>
<option value="make1">MAKE1</option>
<option value="make2">MAKE2</option>
</select>
<select name="model" id="model">
<option value="">ANY MODEL</option>
<option value="model1">MODEL1</option>
<option value="model2">MODEL2</option>
</select>
<select name="minprice" id="minprice">
<option value="">ANY PRICE</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="maxprice" id="maxprice">
<option value="">ANY PRICE</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
Dann auf der search.php Seite, ich kann alle Variablen erhalten, aber ich bin kämpfen, um die SELECT-Abfrage zu schreiben. Ich habe versucht, UND zu verwenden, aber das funktioniert natürlich nur, wenn alle Variablen gesetzt sind. Ich habe insgesamt 8 Variablen, die eingestellt werden können. Ich habe sogar versucht, etwas wie das unten zu tun, aber eindeutig nicht den Weg zu gehen.
SELECT * FROM search data where if(isset($make)) AND if(isset($model)) etc etc
Vielen Dank alle im Voraus für Ihre Hilfe. Jeder Rat würde sehr geschätzt werden. Ich versuche so viel wie ich kann zu lernen, aber ich bin wirklich mit diesem fest.
UPDATE: So habe ich einige kreativen Experimentieren getan und ich fühle, dass ich in der Nähe bin, kann einfach nicht daran zu arbeiten:
$query = array();
if (!empty($_GET['vType'])) {
$query[] = "vType='$vType'";
}
if (!empty($_GET['make'])) {
$query[] = "make='$make'";
}
if (!empty($model)) {
$query[] = "model='$model'";
}
if (!empty($yearfrom)) {
$query[] = "minyear >'$yearfrom'";
}
if (!empty($yearto)) {
$query[] = "maxyear>'$yearto'";
}
if (!empty($minprice)) {
$query[] = "minPrice >'$minprice'";
}
if (!empty($maxprice)) {
$query[] = "maxyear >'$maxprice'";
}
if (!empty($location)) {
$query[] = "location='$location'";
}
if (empty($query)){
$where = "WHERE";
}else{
$where = "";
}
$query = implode(' AND ', $query);
$sql = "SELECT * FROM searchdata $where $query";
$result = mysqli_query($conDB, $sql);
if (mysqli_num_rows($result) === 0) {
echo 'Nothing Found';
}
while ($row = $result->fetch_assoc()) {
echo $row['vType'];
Ich bin sicher, dass ich etwas sehr falsch hier mache. Danke Jungs Ich schätze deine Hilfe wirklich
tun Sie auf eine Schaltfläche einreichen? –
Bitte sagen Sie speziell, wie Sie Ihre Anfrage einrahmen möchten! – Jagrati