0

所以我的博客文章在他们自己的“博客文章”div 中得到了回应。

然后我在下面有另一个包含帖子评论的 div。

我有一个名为“帖子”的表格,其中包含与帖子有关的所有内容。然后我有另一个称为...“评论”,其中包含信息。

我希望这个工作的方式是“评论”中有一个名为 updatepostid 的字段。这包含与之关联的博文的 id。

当呼应它们时,问题就来了。我可以让评论与类似的东西相呼应:

$query = 'SELECT * FROM comments';

但只要我这样做,例如

$query = 'SELECT * FROM comments WHERE updatepostid = "'.$postID.'"';

什么都没有显示。我相信这是因为博文和评论不在同一个回声中。

不过,我不确定如何让它们进入相同的 echo 语句。

所以,这就是它目前的样子:

    <?php

     $query = 'SELECT * FROM posts WHERE buildID = '.$_GET['id'].' LIMIT '.$limit.''; 
     try 
{ 
     $stmt = $db->prepare($query); 
     $stmt->execute(); 
} 
    catch(PDOException $ex) 
{ 
    die("Failed to run query: " . $ex->getMessage()); 
} 
    $rows = $stmt->fetchAll(); 
    foreach($rows as $row):

    $postID = $row['postID'];
    $text = $row['text'];
    $date = $row['date'];

echo basicbbcode ('

    <div class="blogtest">

    <form action="process/updatepost.php" class="updatepost" method="post">
        <input type="button" class='.$editenabled.' value="Edit">
        <input type="submit" class="saveupdatebutton" value="Save">
        <input type="hidden" class="postid" name="postid" value="'.$postID.'">

        <div class="text">

            <div class="buildtext">'.$text.'</div>

            <div class="editor"><textarea name="ckeditor"id="ckeditor" class="ckeditor">'.$text.'</textarea></div>

        </div>

    </form>

    </div>

    ')?>

    <?php

    // Get comments

     $query = 'SELECT * FROM comments'; 
     try 
        { 
     $stmt = $db->prepare($query); 
     $stmt->execute(); 
        } 
    catch(PDOException $ex) 
        { 
    die("Failed to run query: " . $ex->getMessage()); 
        } 
    $rows = $stmt->fetchAll(); 
    foreach($rows as $row):

    $commentID = $row['commentID'];
    $usercommentID = $row['userID'];
    $comment = $row['comment'];
    $updatepostid = $row['updatepostid'];

    ?>

    <div class="commentsbox">
        <div id="textcomment"><?php echo "$usercommentID: $comment";?></div>
    </div>

    <?php endforeach; ?> 
    <?php endforeach; ?> 

我知道以上内容很糟糕......但这只是为了向您展示我正在使用的内容。

我正在考虑使用 INNER JOIN 查询,但仍然无法理解它。

将其纳入一个回声语句有什么帮助吗?

4

1 回答 1

0

当您获取评论时,您正在覆盖您的第一个$rows变量(与帖子查询一起使用)。您需要为这些变量使用不同的变量名。为了使事情更容易理解,请尝试使用描述性名称,例如foreach ($postRows as $postRow)foreach ($commentRows as $commentRow)

于 2013-09-11T21:27:43.383 回答