циклы перепутаны с MySQL - PullRequest
       3

циклы перепутаны с MySQL

0 голосов
/ 11 октября 2010

Я пишу простую доску объявлений, где вы можете ответить на любой поток, а затем ответить на любой ответ и так далее ... все работает хорошо, но есть простой способ зациклить запрос, так как это может привести к потенциии дальше и дальше

    $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);

1 Ответ

0 голосов
/ 11 октября 2010

Вы можете попробовать UNION, возможно, не лучшее решение, но оно будет работать

$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";

Лучше было бы изменить структуру таблицы базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...