2012-01-29 77 views
0

我做了一個非常簡單的查看計數器。最終,我將轉換爲cronjob視圖計數器/更新程序,但現在我只需在每次刷新頁面時使用mysql更新查詢。我想知道是否有辦法將這兩個聲明合併爲一個,試圖減少處理。有什麼辦法可以結合這兩個查詢語句嗎?

PHP:

$query=mysql_query("SELECT * FROM questions WHERE id='$q'"); //string is escaped (not shown) 
while ($row=mysql_fetch_assoc($query)){ 
    $views=$row['views']+1; 
} 
mysql_query("UPDATE questions SET views='$views' WHERE id='$q'"); 

而且,這將是非常有益的,如果你發現任何你能指出潛在的安全問題。感謝

回答

4

爲什麼不乾脆:

mysql_query("UPDATE questions SET views=views+1 WHERE id='$q'"); 

這將通過1

+0

什麼是「意見+ 1」中的「意見」。這個價值從何而來?我不需要查詢來獲取這個值 – kirby 2012-01-29 04:09:22

+0

這是在數據庫中執行的,所以說「views」的值應該成爲之前的「views」值的總和,而「1. views」是之前的值在數據庫中。 – 2012-01-29 04:12:13

+0

這只是列值。將它與php中的變量(或任何其他語言)進行比較 – giorgio 2012-01-29 04:12:30

1

我想你想用一個值1更新視圖每次和增量增加您的看法。你可以直接做到這一點,而不需要選擇像:

mysql_query("UPDATE questions SET views=views+1 WHERE id='$q'"); 

這將增加你的看法。

希望這會有所幫助:)

+0

我猜你鍵入更快:) – 2012-01-29 04:08:48

+0

@sabari請參閱我上面的評論 – kirby 2012-01-29 04:10:35

+0

@布魯諾席爾瓦:) – Sabari 2012-01-29 04:16:40

相關問題