2010-03-08 80 views
1

我試圖更新一個表(條目)中的評論列,當一個新行添加到另一個表(blog_comments)時。此代碼位於向DB添加註釋的PHP函數中:更新數據庫中的評論數

$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是頁面的名稱。此代碼現在不做任何事情;它不會改變任何東西。我不確定我做錯了什麼。有任何想法嗎?

回答

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'"); 

有兩件事情值得一提:

  1. 使用標題作爲一門科通常不建議。您應該使用博客帖子ID或其他內容(imho);和

  2. 這代表非規範化,如果您有性能問題,這可能很有用。否則,如果數字以某種方式失去同步,它會產生問題。您可以編寫一個查詢,在一次往返中取回博客文章和評論數量(作爲子查詢)。