如何使用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); 
?> 
+0

尝试运行数据库查询,我想你可能只有一个记录 – shashi

+0

如果它在第一行中唯一所示,你到底在期待?在每一行都有一个select元素?或者你的意思是你只在结果中得到一个结果* – ProEvilz

+0

@ProElviz我想要在每一行中都有一个select元素 –

您将要覆盖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); 
?> 
+0

即使当我将$ row更改为$ row1时,它仍然会在第一行显示已填充的选择标签@ B.Desai –

+1

Filip,仔细阅读。 “一旦你的数据被提取,它将不会再次执行,直到你再次调用(mysqli_query())查询。” –

+0

@FilipDjordjevic仔细阅读我的答案?我已经说过**一旦你的数据被提取。在你再次调用(mysqli_query())查询之前,它不会再执行。** –