簡體   English   中英

PHP:輸入MySQL查詢

[英]PHP: Input MySQL query

大家好,我有點困惑,我有一個列表頁面,顯示我的SQL表中的所有行。

在此可以看到我正在開發的示例: 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選擇器,$ results用於獲取整個表並列出所有車輛。

第二個塊用於顯示表單的“制作”列。

此代碼塊是實際形式:

<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循環在“ Make”列中顯示所有“ Make”,並使用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元素中選擇“制作”時,如何使用select元素過濾顯示在列表框中的結果,我希望他們能夠提交表單並返回所有行在包含相同“ Make”字符串的SQL表中,並隱藏其他錯誤的行。

有什么想法可以實現這一目標或更簡單的方法嗎?

謝謝

我最好的猜測是,當選擇了select-option時,使用JS再次提交表單,並帶有說明模型的參數。

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

有關選擇選項時如何提交表單的信息,請參見此答案

答案將向您展示如何在PHP中處理參數(使用GET方法)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM