2016-11-29 150 views
0

我試圖從基於模型的汽車租賃數據庫中檢索多輛汽車,因此如果有人點擊福特,它將檢索所有型號爲2的汽車。我現在的代碼只顯示數據庫中的第一條記錄,我該如何創建一個while循環來響應每個匹配的行?while循環檢索數據

$ModelID = $_GET['model_id']; 

$result = mysqli_query($con, "SELECT RegNumber, Colour FROM Car WHERE ModelID = '$ModelID'"); 

$row = $result->fetch_assoc(); 

echo $row["RegNumber"]; 
echo $row["Colour"];  
+3

你你可以很容易地回答你自己的問題:'while($ row = $ result-> fetch_assoc()){echo $ row [「RegNumber」];}' – Steve

+1

[SQL Injections](http:// php。 net/manual/en/security.database.sql-injection.php)並且應該真的使用[Prepared Stat ements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php),而不是串聯你的查詢。特別是因爲你甚至沒有逃避用戶輸入。 –

回答

0

你需要的東西,如:

while ($row = $result->fetch_assoc()) { 
    echo $row['RegNumber']; 
    echo $row['Colour']; 
} 

有關詳細信息,請通過PHP Documentation

0

一個可能的解決方案是使用mysqli::query。永遠不要忘記逃跑的查詢中的數據,在這種情況下,你應該使用mysqli::real_escape_string功能

$escapedModelId = $mysqli->real_escape_string($ModelID); 
$query= "SELECT RegNumber, Colour FROM Car WHERE ModelID = '$escapedModelId'"; 
if ($result = $mysqli->query($query)) { 
    while ($row = $result->fetch_assoc()) { 
     echo $row["RegNumber"]; 
     echo $row["Colour"]; 
    } 
}