Php 与MySQL混合的循环

Php 与MySQL混合的循环,php,mysql,loops,Php,Mysql,Loops,我正在写一个简单的留言板,你可以回复任何帖子,然后回复任何回复,等等。。。。一切都很好,但有没有一个简单的方法来循环查询,因为这可能会继续下去 $rsql = "SELECT * FROM rotd_mb WHERE reply='N' ORDER BY dateTime DESC"; $result = runSQL($rsql); while ($row = mysql_fetch_array($result)) { echo "".$row[title].""; $rsql

我正在写一个简单的留言板,你可以回复任何帖子,然后回复任何回复,等等。。。。一切都很好,但有没有一个简单的方法来循环查询,因为这可能会继续下去

    $rsql = "SELECT * FROM rotd_mb WHERE reply='N' ORDER BY dateTime DESC";
$result = runSQL($rsql);
while ($row = mysql_fetch_array($result)) {
echo "".$row[title]."";
    $rsql2 = "SELECT * FROM rotd_mb WHERE reply='Y' AND replyID='$row[messageID]' ORDER BY dateTime DESC";
    $result2 = runSQL($rsql2);
    while ($row2 = mysql_fetch_array($result2)) {
    echo "".$row2[title]."";
        $rsql3 = "SELECT * FROM rotd_mb WHERE reply='Y' AND replyID='$row2[messageID]' ORDER BY dateTime DESC";
        $result3 = runSQL($rsql2);
        while ($row3 = mysql_fetch_array($result3)) {
        echo "".$row3[title]."";
        }
        mysql_free_result($result3);    
    }
    mysql_free_result($result2);    
}
mysql_free_result($result);

你可以尝试联合,也许不是最好的解决方案,但它会奏效

$sql = "SELECT * FROM rotd_mb WHERE reply='N' ORDER BY dateTime DESC
        UNION
        SELECT * FROM rotd_mb WHERE reply='Y' AND replyID='$row[messageID] ORDER BY dateTime DESC
        UNION
        SELECT * FROM rotd_mb WHERE reply='Y' AND replyID='$row2[messageID]' ORDER BY dateTime DESC";

更好的办法是重新设计数据库表结构。

我认为您应该寻找联接。