簡體   English   中英

根據HTML表單中的用戶輸入從SQL數據庫表中檢索列

[英]Retrieve Columns from SQL Database Table Based on User Input in HTML Form

抱歉,如果以前已經解決過的話。 我查看了所有建議,但似乎沒有什么適合我的需求。

無論如何,我都試圖開發一個汽車零件庫,其中以下信息存儲在名為“ auto_parts”的表中:

  • 分銷商
  • 地址
  • 壓縮
  • 電話號碼
  • SKU
  • 部分
  • 全新或二手
  • 品牌/型號
  • 價錢

該表如下所示:

我希望客戶能夠提交一個詢問以下問題的表格:

城市,州,零件,新的或二手的,年份和品牌/型號,

它將查詢我的數據庫並在滿足先前條件的表列上輸出所有信息

查詢輸出:

  • 分銷商
  • 地址
  • 壓縮
  • 電話號碼
  • SKU
  • 部分
  • 全新或二手
  • 價錢

這是我表格的縮寫:

<form action="parts_query.php" method="get">
<h2 align="center">Find Auto Part</h2>
<strong>City:</strong> 
<br />
<input type="text" name="City" value="City" required>
<br />
<strong>State:</strong> 
<br />
<select name="State" size="1" required><option selected="selected">Choose One:
<option>AL
<option>AK
<option>AZ
<option>AR
<option>CA
<option>...
</select>
<br />
<strong>Select Part:</strong>
<br />
<select name="Part" size="1" required><option selected="selected">Choose One:
<option>A Pillar
<option>A/C Compressor
<option>A/C Compressor Clutch Only
<option>A/C Condenser
<option>A/C Condenser Fan
<option>A/C Control Computer
<option>A/C Evaporator
<option>A/C Evaporator Housing only
<option>A/C Heater Control (see also Radio or TV Screen)
<option>A/C Hose
<option>Accelerator Parts
<option>Adaptive Cruise Projector
<option>...
</select>
<br />
<strong>New or Used?</strong>
<br />
<select name="New_Used" size="1"><option selected="selected">Choose One:
<option>New
<option>Used
</select>

<br />
<strong>Vehicle Year:</strong> 
<br />  
<select name="Year" required><option selected="selected">Choose One:
<option value="2016">2016</option>
<option value="2015">2015</option>
<option value="2014">2014</option>
<option value="2013">2013</option>
<option value="2012">2012</option>
</select>
<br />

<strong>Vehicle Make / Model:</strong><br /> 
<select name="Make_Model" required><option selected="selected">Choose One:
<option>AMC Ambassador
<option>AMC American
<option>AMC AMX
<option>...
</select>
<br />
<br />
<input class="btn" type="submit" value="Submit">
</form>

我嘗試了多種查詢查詢來搜索我的數據庫表中通過表單提交的上述信息,然后將所有相關信息(如上所述)輸出到HTML表,但是似乎沒有任何效果。 我對使用數據庫仍然很陌生,如果我的問題似乎多余或過於籠統,我再次道歉。

我不記得parts_query.php最初的樣子,因為我對其進行了很多更改,但是現在看起來像這樣:

    <?php
//Connecting to sql db.
$connect = mysqli_connect("localhost","root","","autoparts_bank");

$query = "SELECT * FROM auto_parts WHERE City = [] AND Part = [] AND Year = [] AND Make_Model = []"
$result = mysql_query($query);

echo "<table>"; // start a table tag in the HTML

while($row = mysql_fetch_array($result)){   //Creates a loop to loop through results
echo "<tr>
<td>" . $row['Distributor'] . "</td>
<td>" . $row['Address'] . "</td>
<td>" . $row['City'] . "</td>
<td>" . $row['State'] . "</td>
<td>" . $row['Zip'] . "</td>
<td>" . $row['Phone'] . "</td>
<td>" . $row['Part'] . "</td>
<td>" . $row['New_Used'] . "</td>
<td>" . $row['Price'] . "</td>
</tr>";  //$row['index'] the index here is a field name
}

echo "</table>"; 

mysql_close(); //Make sure to close out the database connection
?>

<?php
//Connecting to sql db.
$connect = mysqli_connect("localhost","root","","autoparts_bank");
//Sending form data to sql db.
mysqli_query($connect,"INSERT INTO `auto_parts` (`Distributor`, `Address`, `City`, `State`, `Zip`, `Phone_No`, `SKU`, `Part`, `New_Used`, `Year`, `Make_Model`, `Price`) 
VALUES ('$_POST[Distributor]', '$_POST[Address]', '$_POST[City]', '$_POST[State]', '$_POST[Zip]', '$_POST[Phone_No]', '$_POST[SKU]', '$_POST[Part]', '$_POST[New_Used]', '$_POST[Year]', '$_POST[Make_Model]', '$_POST[Price]')");
?>

要將提交的表單數據返回到外部頁面,只需檢索$ POST或$ GET表單變量,然后將它們作為參數傳遞給SQL查詢

<?php

// RETRIEVE FORM DATA (consider using $POST array to avoid url show and character limit)
$city = $_GET["City"];
$state = $_GET["State"];
$part = $_GET["Part"];
$new_used = $_GET["New_Used"];
$year = $_GET["Year"];
$make_model = $_GET["Make_Model"];

// DATABASE CONNECTION 
// (consider saving credentials below in external .php file and required in this script)
$servername = "localhost";
$username = "root";
$password = "****";
$dbname = "autoparts_bank";

$conn = new mysqli($servername, $username, $password, $dbname);

// QUERY PREPARATION AND EXECUTION
$query = "SELECT * FROM auto_parts 
          WHERE City = ? AND Part = ? AND Year = ? AND Make_Model = ?";
$stmt = $conn->prepare($query);

if ($stmt) { 

    $stmt->bind_param("ssss", $city, $part, $year, $make_model);
    $stmt->execute();
    $stmt->store_result();
    $result = $stmt->get_result();

    echo "<table>";

    // LOOP THROUGH RESULTS
    while ($row = mysqli_fetch_assoc($result)) {  
        echo "<tr>
               <td>" . $row['Distributor'] . "</td>
               <td>" . $row['Address'] . "</td>
               <td>" . $row['City'] . "</td>
               <td>" . $row['State'] . "</td>
               <td>" . $row['Zip'] . "</td>
               <td>" . $row['Phone'] . "</td>
               <td>" . $row['Part'] . "</td>
               <td>" . $row['New_Used'] . "</td>
               <td>" . $row['Price'] . "</td>
             </tr>";  
    }

    echo "</table>"; 

    $stmt->free_result();
    $stmt->close();

} else {
    echo "query failed: ".$conn->error; 
}

// CLOSE CONNECTION
$conn->close();

?>

暫無
暫無

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

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