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