<?php
$con=mysqli_connect("","","","");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM itiraf");
$result2 = mysqli_query($con,"SELECT oy FROM users WHERE username='". $Account->session('display_name') ."'");
if(mysqli_num_rows($result)=="0"){echo "Henüz itiraf yapılmamış";}
else{
echo "<table border='1' class='imagetable'>
<tr>
<th>NO:</th>
<th>İsim</th>
<th>İtiraf</th>
<th>Oy</th>
<th>Oy Kullan</th>
</tr>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td><b>" . $row['id'] . "</b></td>";
echo "<td><b>" . $row['username'] . "</b></td>";
echo "<td><b>" . $row['itiraf'] . "</b><br></td>";
echo "<td><b>" . $row['oy'] . "</b><br></th>";
while($row2 = mysqli_fetch_array($result2)){
if ($row2['oy'] ==10) { echo "<td>Oy kullandınız</td>";}
else{echo "<td><a href='oy.php?id={$row[id]}'><img src='assets/images/up.png'/></a></td>";}}
echo "</tr>";
echo "</form>";}
echo "</table>"; }
mysqli_close($con);?>
第一次工作。第二,虽然工作但不太好。只有一次,我可以看到竖起大拇指的图像。我在这里添加了关于表的所有代码。任何想法?
答案 0 :(得分:0)
在伪代码中,它附加:
{ //first iteration of while($row = mysqli_fetch_array($result))
...
{ //first iteration of while($row2 = mysqli_fetch_array($result2))
}
{ //Second iteration of while($row2 = mysqli_fetch_array($result2))
}
...
{ //last iteration of while($row2 = mysqli_fetch_array($result2))
}
// know, $result2 is empty
}
{//Second iteration of while($row = mysqli_fetch_array($result))
...
//Here, $result2 is empty, so the second while loop doesn't work
}
如果你想重用$ result2,你可以在之前将它存储在一个数组中,然后在while循环中使用这个数组
答案 1 :(得分:0)
您的第二个while循环遍历$result2.
中存储的查询结果
因此,第一次完全执行第二次while循环时,光标移动到表的末尾并且不会返回到第一个位置。
一种解决方案是将第二个查询的所有值(其结果在$result2
中)存储在另一个数组中,然后在第二个while循环中使用该数组。
另一个解决方案是在第一个while循环中移动第二个查询本身,但这意味着每次都会执行查询。