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

PHP查询-帮助将两个查询链接到一个echo语句中,php,mysql,join,Php,Mysql,Join,所以我的博客帖子在他们自己的“博客帖子”栏目中得到了回应 然后我在下面有另一个div,其中包含posts评论 我有一个名为“posts”的表,其中包含了与post相关的所有内容。然后我有另一个名字叫…'包含信息的“注释” 我希望它工作的方式是在“comments”中有一个名为updatepostid的字段。它包含与之关联的blogpost的id 这个问题是在回应他们的时候出现的。我可以用类似以下内容来回应这些评论: $query = 'SELECT * FROM comments'; 但只要我

所以我的博客帖子在他们自己的“博客帖子”栏目中得到了回应

然后我在下面有另一个div,其中包含posts评论

我有一个名为“posts”的表,其中包含了与post相关的所有内容。然后我有另一个名字叫…'包含信息的“注释”

我希望它工作的方式是在“comments”中有一个名为updatepostid的字段。它包含与之关联的blogpost的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; ?> 

以上是可怕的,我知道。。。但这只是为了让你知道我在做什么

我曾考虑过使用内部连接查询,但仍然无法解决这个问题


关于将其放入一个echo语句中有什么帮助吗?

获取注释时,您正在覆盖第一个
$rows
变量(与posts查询一起使用)。对于这些变量,您需要使用不同的变量名。为了让事情更容易理解,请尝试使用描述性名称,例如
foreach($postRow为$postRow)
foreach($commentRow为$commentRow)

我相信这是因为blogpost和注释不在同一个回音中。--不。这是因为您的查询没有做您认为它做的事情。尝试直接在命令行/terminal/phpMyAdmin中执行它,看看是否得到任何输出。同意@AmalMurali-感觉更像是您的
updatepostid
列与
$postID
变量不匹配。请在前面尝试,并注释掉
$smt
Try
$echo$postID验证后,运行
$smt
的单个实例测试结果
打印($rows)如果成功了,并且您在数据库命令框中尝试了sql,那么请尝试另一个!到目前为止,除了你未来的行动之外,没有什么可能会出问题。不要把问题堆在问题上。请在你编写更多的SQL接口代码之前,你必须仔细阅读以避免严重的错误
$\u POST
$\u GET
变量不应直接进入查询。PDO支持数据占位符将用户数据添加到查询中,因此在使用这些占位符时要严格遵守规则。这是一个非常危险的代码。谢谢你提供的信息,不知怎么的,我一定是错过了输入一些虚假的评论,并给了他们错误的帖子。一旦整理好,它就可以正常工作了。令人惊讶的是我竟然忽略了它!至于SQL注入,这个网站是在本地托管的,一旦我的工作正常,我会在朋友的帮助下确保它的安全。