$result = mysqli_query($con,"SELECT * FROM prizemaster");
$result1 = mysqli_query($con,"SELECT * FROM studentmaster");
echo "<table border='1'>
<tr>
<th>Prize ID        </th>
<th>Prize Name         </th>
<th>Name             </th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['prizeid'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td><select>";
while($drop = mysqli_fetch_array($result1))
{
echo "<option>" . $drop['name'] . "</option>";
}
echo "</select></td>";
echo "</tr>";
}
echo "</table>";
表已成功创建,但似乎有问题。在我的第一个记录中下拉是好的,但在所有其他记录中,下拉列表是空的。我该如何解决这个问题?任何人都可以清楚地解释代码,因为我是php的新手。
这是我的问题:
https://imagizer.imageshack.us/v2/820x321q90/838/yj63.png
答案 0 :(得分:0)
代码缩进很重要!你的问题是嵌套的while循环。
while($drop = mysqli_fetch_array($result1))
{
第一次完成后,将无法获取更多结果。你可以做的是将结果保存到第一个while循环之外的数组
$ddOptions = array();
while($drop = mysqli_fetch_array($result1))
$ddOptions[] = $drop;
然后在
中循环遍历另一个数组while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['prizeid'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td><select>";
foreach($ddOptions as $drop)
{
echo "<option>" . $drop['name'] . "</option>";
}
echo "</select></td>";
echo "</tr>";
}
echo "</table>";
答案 1 :(得分:0)
我想我理解这个问题
您正在顶部执行2个查询,循环执行第一个查询并在循环第二个查询内部执行。
问题是当你把第二个查询循环到第二个查询里面时,第二个查询被设置为结束,而下一个迭代第一个第二个将得不到任何东西
您可能需要使用mysqli_data_seek
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['prizeid'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td><select>";
while($drop = mysqli_fetch_array($result1)){
echo "<option>" . $drop['name'] . "</option>";
}
mysqli_data_seek($result1, 0);
echo "</select></td>";
echo "</tr>";
}