2014-09-21 42 views
0

嘿傢伙我有點困惑,我有一個列表頁面,顯示我的SQL表中的所有行。PHP:輸入MySQL查詢

什麼,我發展可以看到這裏的一個例子:http://www.drivencarsales.co.uk/used-cars.php

所以你可以看到我已經開發了獲取所有錶行的列表頁,每一行相當於一輛車輛。

我現在想讓用戶使用左邊的窗體過濾結果,我原本打算使用AJAX,但是我覺得好像要花很長時間才能學會如何開發它。

下面是代碼設置我使用來實現的例子我已經表明:

<?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選擇,在$結果用於取整表和列出所有車輛。

第二個塊用於顯示錶單的'製作'列。

的代碼塊是實際的形式:

<form> 
    <select class="form-control select-box" name=""> 
       <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> 

正如你所看到的這個塊是使用while循環來顯示所有的「製作」列「製作的」,並使用DISTINCT子句所以它不顯示相同的選項。

這裏列出的結果頁面塊:

<?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> 
      '; 
     } ?> 

如此下來,我的問題...我如何使用選擇元素,當用戶篩選這些結果在上市塊顯示從select元素中選擇'Make'我希望他們能夠提交表單並返回包含相同'Make'字符串的SQL表中的所有行並隱藏其他假的行。

任何想法,我可以實現這個或任何更簡單的方法?

感謝

+0

包含在「搜索」「選擇選項「製作」值」處理PHP中的參數。即'價值=「$ make ['製作']」,這樣你就可以選擇'製作',在您的搜索查詢 – 2014-09-21 11:07:13

+0

@RyanVincent我討厭成爲一個痛苦,但我仍然有點困惑可以你向我展示了一個如何工作的例子,因爲我確定如何提交請求。 – 2014-09-21 12:05:37

回答

0

我最好的猜測是供您使用JS再次提交表單,當選擇選項被選中,有一個參數,說明模型。

然後在您的PHP文件中,您應該查找該參數並相應地編輯查詢字符串。

請參閱此answer瞭解如何在選擇選項時如何提交表單。

answer將告訴你如何(使用GET方法)