PHP while循环回显重复

时间:2014-10-23 09:01:19

标签: php sql-server while-loop

我需要一些方法的帮助

我有一个SQL语句,可以从questions'标头表中获取结果。

while()正在提取数据我正在运行另一个SQL语句,该语句从“子表”中提取comments'根据从id表中提取的questions

当我一起回复时,question数字1' comments显示正常,所有与question相关的评论都显示正常。

问题是当question号码2 comments被回显时,来自question号码1的评论会显示(重复)。

我无法弄清楚我哪里出错了。

这是我的代码看起来只是为了展示方法的简化版本:

$comment_list = ""; // to display comments
$GET_QUESTIONS = $DBH->prepare("SELECT ...");
// parameters are bound here using $GET_STATEMENTS->bindParam();

while($row = $GET_QUESTIONS->fetch(PDO::FETCH_ASSOC)){

    $question_id = $row['id'];
    $question_string = $row['string'];

    // NOW I PULL THE COMMENTS
    $GET_COMMENTS = $DBH->prepare("SELECT ...");
    // parameters are bound here using $GET_COMMENTS->bindParam();

    while($row = $GET_COMMENTS->fetch(PDO::FETCH_ASSOC)){

        $comment_id = $row['id'];
        $comment_string = $row['string'];

        $comment_list .= "
            <p>" .$comment_string. "</p>
        ";

    }

    echo "
        <h1>" .$question_string. "</h1>
        " .$comment_list. "

    ";

}

为什么在回显第二个question

时会发生重复

1 个答案:

答案 0 :(得分:2)

您必须在第二个while循环之前重置$ comment_list变量。  将其设置为

$comment_list = null ; 

在第二个while循环之前。这就是全部!