2017-06-22 2 views
1

Ich versuche, Fahrzeuge aus meiner Datenbank zu filtern. Ich möchte, dass Kunden in der Lage sind, Fahrzeuge zu filtern, indem sie ein Preisbereichfeld und eine Kategorie des Autos auswählen .... die Kategorien sind in einer Tabelle namens Kategorie in meiner Datenbank und die Fahrzeuge werden von meiner Fahrzeugtabelle in meinem aufgerufen Datenbank. Unten ist mein Code. Irgendwelche Ideen werden sehr geschätzt.Der Versuch, Daten aus einer Datenbank mithilfe von Abfragen zu filtern. Warum wird das nicht funktionieren?

<div class="main"> 
 

 
<form method="post" action='<?php echo $_SERVER['PHP_SELF']; ?>' > 
 
<select name="price"> 
 
<option value="= price">All</option> 
 
<option value="< 5000">$0 - $5,000</option> 
 
<option value="> 5000 AND price < 10000">$5,000 - $10,000</option> 
 
<option value="> 10000 AND price < 20000">$10,000 - $20,000</option> 
 
<option value="> 20000 AND price < 50000">$20,000 - $50,000</option> 
 
<option value="> 50000">$50,000+</option> 
 
</select> 
 
<?php 
 
\t // Read the values in from the department table to populate the dropdown 
 
$query = "SELECT * FROM category"; 
 
$results = mysqli_query($conn, $query); 
 
if(!$results) { 
 
echo ("Query error: " . mysqli_error($conn)); 
 
} 
 
?> 
 

 
<select name="category"> 
 
<option value="All">All</option> 
 
<?php while ($row = mysqli_fetch_array($results)) { ?> 
 
<option value="<?php echo $row['cat_id'];?>"> 
 
<?php echo $row['category_description'];?> </option> 
 
<?php } ?> 
 
</select> 
 

 

 
<?php 
 
//set initial value for sort variable 
 
$price = "= price"; // this will set the default value for the price filter to all 
 
$category = "%"; // this will set the default value of the category filter return all values 
 
\t 
 
if(isset($_POST['price'])) { 
 
$price = $_POST['price']; 
 
} 
 
if(isset($_POST['category'])) { 
 
$category = $_POST['category']; 
 
} 
 
?> 
 
<input type="submit" name="update" value= "Display results"> 
 
\t </form> 
 
<?php 
 
// Determine which button was pressed and call the appropriate file 
 
if (isset($_POST['price'])) { 
 
//set query variable 
 
$query = "SELECT * FROM vehicles WHERE price = price AND category_id LIKE %"; 
 
} 
 
elseif (isset($_POST['category'])) { 
 
$query = "SELECT * FROM vehicles WHERE price $price AND category_id LIKE '$category'"; 
 
} 
 
\t 
 
$query = "SELECT * FROM vehicle WHERE standardusedvehicle ='yes'"; 
 
$results = mysqli_query($conn, $query); 
 
if(!$results) { 
 
echo ("Query error: " . mysqli_error($conn)); 
 
} 
 

 
else { 
 
// Fetch and display the results of the select query 
 
while ($row = mysqli_fetch_array($results)) { 
 
echo "<p>VIN_#: $row[vin]</p> "; \t 
 
echo "<p>Stock Number: $row[stockno]</p> "; 
 
echo "<p>Manufacturer Number: $row[man_num]</p>"; 
 
echo "<p>Model: $row[model]</p>"; 
 
echo "<p>Colour: $row[col_id]</p>"; 
 
echo "<p>Year: $row[year]</p>"; 
 
echo "<p>Price: $row[price]</p>"; 
 
echo "<p>Kilometres: $row[kms] </p>"; 
 
echo "<p>Registration: $row[rego] </p>"; 
 
echo "<p>Cylinders: $row[cylinders] </p>"; 
 
echo "<p>Fuel: $row[fuel] </p>"; 
 
echo "<p>Transmission: $row[transmission] </p>"; 
 
echo "<p>Category Id: $row[cat_id] </p>"; 
 
echo "<p>Vehicle on Special (yes/no): $row[special] </p>"; 
 
echo "<p>Standard Used Vehicle: $row[standardusedvehicle] </p>"; 
 
echo "<img src='{$row['vehicle_image']}' />"; 
 
} 
 
} 
 
?>

+0

Weil Sie PHP Inhalte in HTML-Code Snippet gesetzt haben? –

+0

Zuerst: '$ query =" SELECT * FROM Fahrzeuge WHERE Preis = Preis UND Kategorie_ID LIKE% ";' Preis = Preis, denken Sie verpasst ein '$'? Außerdem sollten Sie etwas über SQL-Injection lernen. http://bobby-tables.com Ihr Code ist wirklich unsicher und Sie könnten ziemlich schnell gehackt werden. @PraveenKumar Wo? – Twinfriends

+0

@Twinfriends Sarkasmus Bruder. –

Antwort

1

In diesem Code zwei Tabellen "Fahrzeug" und "Fahrzeuge" verwenden. Bitte benutze das, was richtig ist.

bitte diesen Code nach Formular-Tag Ende statt verwenden:

if (isset($_POST['price'])) { 
//set query variable 
$query = "SELECT * FROM vehicles WHERE price = price AND category_id LIKE %"; 
} 
elseif (isset($_POST['category'])) { 
$query = "SELECT * FROM vehicles WHERE price $price AND category_id LIKE '$category'"; 
} 

$query = "SELECT * FROM vehicle WHERE standardusedvehicle ='yes'"; 

Bitte den obigen Code wie folgenden Code ändern:

if (isset($_POST['price'])) { 
if($_POST['category'] != 'All'){ 
    $query = "SELECT * FROM vehicles WHERE price $price AND category_id = $category"; 
}else { 
    $query = "SELECT * FROM vehicles WHERE price $price"; 
    } 
} 

Ich weiß nicht, die folgende Zeile Sie wollen oder nicht.

$query = "SELECT * FROM vehicle WHERE standardusedvehicle ='yes'"; 

wenn Sie diese über die Linie verwenden dann folgenden Code anstelle von oben bitte:

if($_POST['category'] != 'All'){ 
     $query = "SELECT * FROM vehicles WHERE price $price AND category_id = $category AND standardusedvehicle ='yes' "; 
    }else { 
     $query = "SELECT * FROM vehicles WHERE price $price AND standardusedvehicle ='yes'"; 
     } 
    } 
+0

Danke. Ich habe nur einen Fahrzeugtisch namens Fahrzeug ... das war ein Rechtschreibfehler, den du gefunden hast, danke – Taylor

Verwandte Themen