如何使用mysql数据填充选择标签,然后在html表中显示它?
我遇到了我的HTML/PHP表的问题,我试图用数据库中的数据填充html选择标记 并在表中显示它。但是选择带数据库数据的标签只会显示在表格的第一行。 这里是我的代码:如何使用mysql数据填充选择标签,然后在html表中显示它?
$result2 = mysqli_query($con,"SELECT vozac FROM vozaci");
$result = mysqli_query($con,"SELECT registracija,tip,status,vozac,napomena2,IDV FROM status_vozila order by status desc")
or die("Error: ".mysqli_error($con));
while($row = mysqli_fetch_array($result))
{
echo '<form action="" method="post">';
echo '<tr>';
echo '<td>'.$row['registracija'].'</td>';
echo '<td>'.$row['tip'].'</td>';
echo '<td>'.$row['status'].'</td>';
echo '<td>
<select name="statusi">
<option value="Na parkingu" name="Na parkingu">Na parkingu</option>
<option value="Na turi" name="Na turi">Na turi</option>
<option value="Potreban radionici" name="Potreban radionici">Potreban radionici</option>
<option value="Potreban radionici-na parkingu" name="Potreban radionici-na parkingu">Potreban radionici-na parkingu</option>
<option value="Potreban radionici-na turi" name="Potreban radionici-na putu">Potreban radionici-na turi</option>
<option value="Razvoz" name="Razvoz">Razvoz</option>
</select>
<input type="submit" name="update" value="Promeni" /></td>';
echo '<td>'.$row['vozac'].'</td>';
echo '<td>';
echo '<select name="list">';
while ($row = mysqli_fetch_array($result2)) {
echo '<option value="' . $row['vozac'] .'">' . $row['vozac'] .'</option>';
}
echo '</select>';
echo '</td>';
echo '<td>'.$row['napomena2'].'</td>';
echo '<td><input type="text" name="napomena2" value=""><input type="submit" name="update3" value="Dodaj" /></td>';
echo'<td><input type="hidden" name="IDV" value="'.$row['IDV'].'"></td>';
echo '</tr>';
echo '</form>';
}
mysqli_close($con);
?>
您将要覆盖row
变量。在其他循环中更改变量名称
while ($row1 = mysqli_fetch_array($result2)) {
echo '<option value="' . $row1['vozac'] .'">' . $row1['vozac'] .'</option>';
}
此外,您需要先将所有值存储在一个数组中,然后遍历它。而不是多次调用相同的查询。一旦你的数据被提取。在您再次致电(mysqli_query()
)查询之前,它不会再执行。
编辑
我已经提到,存储在一个阵列中的所有值第一然后遍历它。试试这个代码:
$result2 = mysqli_query($con,"SELECT vozac FROM vozaci");
$list_vozaci = array();
while ($row = mysqli_fetch_array($result2)) {
$list_vozaci[] = $row['vozac'];
}
$result = mysqli_query($con,"SELECT registracija,tip,status,vozac,napomena2,IDV FROM status_vozila order by status desc")
or die("Error: ".mysqli_error($con));
while($row = mysqli_fetch_array($result))
{
echo '<form action="" method="post">';
echo '<tr>';
echo '<td>'.$row['registracija'].'</td>';
echo '<td>'.$row['tip'].'</td>';
echo '<td>'.$row['status'].'</td>';
echo '<td>
<select name="statusi">
<option value="Na parkingu" name="Na parkingu">Na parkingu</option>
<option value="Na turi" name="Na turi">Na turi</option>
<option value="Potreban radionici" name="Potreban radionici">Potreban radionici</option>
<option value="Potreban radionici-na parkingu" name="Potreban radionici-na parkingu">Potreban radionici-na parkingu</option>
<option value="Potreban radionici-na turi" name="Potreban radionici-na putu">Potreban radionici-na turi</option>
<option value="Razvoz" name="Razvoz">Razvoz</option>
</select>
<input type="submit" name="update" value="Promeni" /></td>';
echo '<td>'.$row['vozac'].'</td>';
echo '<td>';
echo '<select name="list">';
foreach ($list_vozaci as $key => $value) {
echo '<option value="' . $value .'">' . $value .'</option>';
}
echo '</select>';
echo '</td>';
echo '<td>'.$row['napomena2'].'</td>';
echo '<td><input type="text" name="napomena2" value=""><input type="submit" name="update3" value="Dodaj" /></td>';
echo'<td><input type="hidden" name="IDV" value="'.$row['IDV'].'"></td>';
echo '</tr>';
echo '</form>';
}
mysqli_close($con);
?>
即使当我将$ row更改为$ row1时,它仍然会在第一行显示已填充的选择标签@ B.Desai –
Filip,仔细阅读。 “一旦你的数据被提取,它将不会再次执行,直到你再次调用(mysqli_query())查询。” –
@FilipDjordjevic仔细阅读我的答案?我已经说过**一旦你的数据被提取。在你再次调用(mysqli_query())查询之前,它不会再执行。** –
尝试运行数据库查询,我想你可能只有一个记录 – shashi
如果它在第一行中唯一所示,你到底在期待?在每一行都有一个select元素?或者你的意思是你只在结果中得到一个结果* – ProEvilz
@ProElviz我想要在每一行中都有一个select元素 –