嘿傢伙我現在有點卡住了,基本上我試圖找出如何過濾我的SQL查詢,但有點麻煩了解如何完成。PHP:過濾SQL查詢與選擇選項
基本上,我將我網站上所有品牌的所有'品牌'列入表單。我只是從包含每種產品的產品表中抽取一列。
下面是代碼的一個例子,這是PDO和MySQL的選擇:
<?php
include('database.php');
try {
$results = $db->query("SELECT Make, Model, Colour, FuelType, Year, Mileage, Bodytype, Doors, Variant, EngineSize, Price, Transmission, PictureRefs, ServiceHistory, PreviousOwners, Options, FourWheelDrive FROM import ORDER BY Make ASC");
} catch (Exception $e) {
echo "Error.";
exit;
}
try {
$filterres = $db->query("SELECT DISTINCT Make FROM import ORDER BY Make ASC");
} catch (Exception $e) {
echo "Error.";
exit;
}
?>
,因爲有重複的「製作的」在SQL專欄中,我已經添加到DISTINCT代碼塊。
這裏是表格,你可以看到我正在使用一個while循環來將表中的每個make都顯示爲它自己的選項。
<form>
<select class="form-control select-box">
<option value="make-any">Make (Any)</option>
<?php while($make = $filterres->fetch(PDO::FETCH_ASSOC))
{
echo '
<option value="">'.$make["Make"].'</option>
';
} ?>
</select>
<button href="#" class="btn btn-block car-search-button btn-lg btn-success"><span class="glyphicon car-search-g glyphicon-search"></span> Search cars
</button>
</form>
我使用此代碼顯示SQL行到列出的結果:
<?php while($row = $results->fetch(PDO::FETCH_ASSOC))
{
echo '
<div class="listing-container">
<a href="carpage.php"><h3 class="model-listing-title clearfix">'.$row["Make"].' '.$row["Model"].' '.$row["Variant"].'</h3></a>
<h3 class="price-listing">£'.number_format($row['Price']).'</h3>
</div>
<div class="listing-container-spec">
<img src="'.(explode(',', $row["PictureRefs"])[0]).'" class="stock-img-finder"/>
<div class="ul-listing-container">
<ul class="overwrite-btstrp-ul">
<li class="diesel-svg list-svg">'.$row["FuelType"].'</li>
<li class="saloon-svg list-svg">'.$row["Bodytype"].'</li>
<li class="gear-svg list-svg">'.$row["Transmission"].'</li>
<li class="color-svg list-svg">'.$row["Colour"].'</li>
</ul>
</div>
<ul class="overwrite-btstrp-ul other-specs-ul h4-style">
<li>Mileage: '.number_format($row["Mileage"]).'</li>
<li>Engine size: '.$row["EngineSize"].'cc</li>
</ul>
<button href="#" class="btn h4-style checked-btn hover-listing-btn"><span class="glyphicon glyphicon-ok"></span> History checked
</button>
<button href="#" class="btn h4-style more-details-btn hover-listing-btn tst-mre-btn"><span class="glyphicon glyphicon-list"></span> More details
</button>
<button href="#" class="btn h4-style test-drive-btn hover-listing-btn tst-mre-btn"><span class="test-drive-glyph"></span> Test drive
</button>
<h4 class="h4-style listing-photos-count"><span class="glyphicon glyphicon-camera"></span> 5 More photos</h4>
</div>
';
} ?>
我的問題是如何使用選擇元件過濾精確「製作」,因此,例如,如果SQL行包含與用戶選擇的'Make'相同的'Make',那麼我希望整行顯示在列表中,而其他任何行都不顯示。
任何代碼示例,以我如何能夠實現這一目標?
感謝
該過濾器是一個'WHERE'子句,需要添加到SQL命令中。 – Popnoodles 2014-09-21 02:26:35
嗨,謝謝你回到我身邊當談到PHP時,我仍然很不情願,我看了一下WHERE子句,但是我很努力地理解我如何實現它。 – 2014-09-21 02:33:00