当一个新行添加到另一个表(blog_comments)时,我正在尝试更新一个表(条目)中的comments列。此代码位于PHP函数内部,该函数向DB添加注释:
$count = mysql_query("SELECT COUNT(*) FROM blog_comments WHERE entry_title='$entry_title'");
$update = mysql_query("UPDATE Entries SET comments='$count' WHERE title='$entry_title'");
$ entry_title是页面的名称。此代码现在没有任何作用;它没有改变任何东西。我不确定我做错了什么。有什么想法吗?
答案 0 :(得分:4)
mysql_query()
不会直接返回结果。它返回一个可用于获取结果的资源:
$result = mysql_query("SELECT COUNT(*) FROM blog_comments WHERE entry_title='$entry_title'");
$row = mysql_fetch_array($result);
$count = $row[0];
$update = mysql_query("UPDATE Entries SET comments='$count' WHERE title='$entry_title'");
值得一提的两件事:
通常不建议使用标题作为外国人。你应该使用博客文章ID或其他东西(imho);以及
这表示非规范化,如果您遇到性能问题,这可能很有用。否则,如果数字以某种方式不同步,它可能会产生问题。您可以编写一个查询,在一次往返中拉回博客帖子和评论数量(作为子查询)。