【发布时间】:2014-07-16 18:20:02
【问题描述】:
所以我有一个查询可以获取数据库中的所有帖子。假设我发布了一个帖子,它不会显示,直到我发布另一个帖子。所以基本上有一个帖子延迟,直到你发布另一个帖子。这是我能解释的最好的。这是我的查询
SELECT * FROM comments WHERE comment_post_id = :id
然后我创建一个数组
//Get post comments
$cmt = $con->prepare("SELECT * FROM comments WHERE comment_post_id = :id");
$cmt->bindValue(':id', $id, PDO::PARAM_INT);
$cmt->execute();
$cmtc = $cmt->fetch(PDO::FETCH_ASSOC);
$comments = array();
while($row = $cmt->fetch(PDO::FETCH_ASSOC)){
$comments[] = array(
'comment_user' => $row['comment_user'],
'comment_ip' => $row['comment_ip'],
'comment_date' => $row['comment_date'],
'comment_content' => $row['comment_content'],
'comment_post_id' => $row['comment_post_id']
);
}
最后显示出来
<?php foreach($comments as $comment){?>
<h1 class="message"><?php echo $comment['comment_content']?></h1>
<?php } ?>
我没有收到任何错误,但是当我在命令行中运行查询时,我得到了一个结果。但是当我访问该页面时,我没有看到任何结果。
这是结构
+-----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| comment_user | varchar(255) | YES | | NULL | |
| comment_ip | varchar(255) | YES | | NULL | |
| comment_date | varchar(255) | YES | | NULL | |
| comment_content | varchar(85) | YES | | NULL | |
| comment_post_id | varchar(255) | YES | | NULL | |
+-----------------+------------------+------+-----+---------+----------------+
【问题讨论】:
-
print_r($comments)的输出是什么?是否显示内容? -
不返回任何内容@dognose
-
但是当我发表另一条评论并做
print_r我得到一个数组@dognose -
你确定吗?也许您正在打开一个阻止提交的事务。您可能想查看您的数据库并确保正确提交了 cmets。
-
例如,当我执行
SELECT * FROM comments WHERE comment_post_id = 75时,查询工作正常。我会收到一条评论,然后当我查看该页面时它不存在。 @tadman