PHP / MySQL选择和计算匹配记录

时间:2011-11-23 13:06:44

标签: php mysql

我有以下代码用于从mysql数据库中选择记录并加载博客文章,我想要做的是计算b_idid的匹配记录数,并仍然显示博客文章。

$result = $dbc->prepare("SELECT id, title, post, date, time, blog, b_id, name, comment FROM blog ORDER BY id DESC LIMIT $start_blog , $blog_per_page");
$result->execute(); 
$result->bind_result($id, $title, $post, $date, $time, $blog, $b_id, $name, $comment);
while ($row = $result->fetch()) {
    Code to show the blog posts
    Show number of comments on the post i.e. Comments (2)
}

我必须有一个空白的时刻,因为我确信它是相当简单的,但每当我使用代码时

count ( b_id ) WHERE b_id = id

博客帖子未显示(即计算匹配而不发送博客文章数据。

希望这是有道理的

此致 吉姆

2 个答案:

答案 0 :(得分:1)

将b_id及其数据外包到另一个表中可能更有意义,但这取决于您要实现的目标。

无论如何要正确回答你的问题,你可以做两个单独的查询(一个有计数,另一个有所有数据)或者只是让php处理它:

$count = 0; 
if($b_id == $id) { $count++; }

答案 1 :(得分:0)

好的,经过多次试验和错误,我设法用左连接做到了这一点。如果有人发现它的使用或兴趣,这是代码。

$result = $dbc->prepare("SELECT blog.id, blog.title, blog.post, blog.date, blog.time, count(blog_comment.b_id) CommCount FROM blog LEFT JOIN blog_comment ON blog.id = blog_comment.b_id GROUP by blog.id ORDER BY id DESC LIMIT $start_blog , $blog_per_page");
$result->execute(); 
$result->bind_result($id, $title, $post, $date, $time, $b_id);
while ($row = $result->fetch()) {
  //Code to show blog posts, using $b_id to display the number of comments
}

非常感谢您的帮助和意见,这一切都加起来找到了我渴望的解决方案!!

吉姆