查询进入无限循环

Den*_*man 2 php mysql loops

以下进入无限循环,意味着它不断地一遍又一遍地显示相同的记录.

<?php
while ($rowr = mysql_fetch_assoc(mysql_query("SELECT * FROM table1")) {
    while($rowu = mysql_fetch_assoc(mysql_query("SELECT * FROM table2 WHERE id = '".$rowr['uid']."'"))){
        while($rowc = mysql_fetch_assoc(mysql_query("SELECT * FROM table3 WHERE id = '".$rowr['cid']."'"))){
    ?>
    <tr><td><?php echo $rowc['post']; ?></td><td><a href="other.php?id=<?php echo $rowu['id']; ?>"><?php echo $rowu['username']; ?></a></td><td><a href="this.php?p=d&i=<?php echo $rowr['id']; ?>"><font color="#FF0000">X</font></a></td></tr>
    <?php
        };
    };
};
?>
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,我该如何解决?

jer*_*oen 7

你将mysql查询放在while语句中,所以每次它到达那里它执行相同的查询并显示相同的第一条记录,你永远不会前进到结果集中的下一条记录.

我个人会将所有查询合并为一个,但是要说明如何解决问题(同样适用于所有循环):

$results = mysql_query("SELECT * FROM table3 WHERE id = '".$rowr['cid']."'");
while ($rowc = mysql_fetch_assoc($results))
{
  // do stuff
}
Run Code Online (Sandbox Code Playgroud)