PHP查询 - 帮助将两个查询链接到1个echo语句中

时间:2013-09-11 21:22:06

标签: php mysql join

所以我的博客帖子在他们自己的'blogpost'div中得到了回应。

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

我有一个名为'posts'的表格,其中包含与帖子有关的所有内容。然后我又有另一个名为......'comments'的信息。

我想让它工作的方式是在'comments'中有一个名为updatepostid的字段。这包含与之关联的博客帖子的ID。

问题来自于回应它们。我可以通过以下内容得到回应:

$query = 'SELECT * FROM comments';

但是,只要我这样做,例如

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

没有显示任何内容。我相信这是因为博客帖子和评论不是同一回声。

我不确定如何让他们进入同一个回声陈述。

所以,这就是目前的情况:

    <?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查询,但仍然无法理解它。

有关将其纳入一个echo语句的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

当您获取评论时,您将覆盖您的第一个$rows变量(与帖子查询一起使用)。您需要为这些使用不同的变量名称。为了便于理解,请尝试使用foreach ($postRows as $postRow)foreach ($commentRows as $commentRow)

等描述性名称