2016-11-29 110 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"]; 
    } 
}