2013-06-04 43 views
1

我目前正在開發一篇文章驅動的網站,並希望知道跟蹤頁面點擊的最佳方式,所以我可以沿着「最受歡迎」或「最受歡迎」文章」。我通過一個PHP頁面上的$ _GET顯示我的文章(例如article.php?id = 2)。我在某處讀到INSERT INTO是要走的路,我試圖這樣做:最好的方式來跟蹤網頁瀏覽量和存儲在MySQL

$page_views = $conn->query("INSERT INTO blog_posts (views) VALUES (views = views+1"); 

唉,這不起作用。

總之我希望能夠:(?如articles.php ID = 3)

  • 上一個特定的ID加1到的頁面瀏覽數的每個頁面上的訪客到達時間不just articles.php

在此先感謝。 (對不起,如果我沒有說清楚,如果你想澄清一下就好了)

+0

我會說,最好的辦法是不要做你的自我和使用谷歌分析 – 2013-06-04 22:15:06

+0

如何跟蹤瀏覽量沒有顛簸的MySQL數據庫 - http://stackoverflow.com/questions/13628627/how-to-track-pageviews -with-thrashing-the-mysql-db –

回答

0

你爲什麼不嘗試更新語句:

"UPDATE blog_posts SET views = views+1 WHERE id = $id" 

INSERT語句中會增加一個新的在數據庫中的行,可能不是你想要的。

+0

乾杯@Danijel :) – Kflap

0

使用更新查詢來遞增計數器。

UPDATE blog_posts SET views = views+1 WHERE id = 'SOME NUMBER' 

如果您在blog_posts表中的每一行都有一個數字小views場和id

SQL小提琴: http://sqlfiddle.com/#!2/0915b/1

+0

Cheers @ user16122990 :) – Kflap

2

你打算保持一個單獨的表的計數?如果是這樣,

|page_views | 
|blog_id|count| 
+-------+-----+ 
| 1 | 12 | 
| 2 | 33 | 

與blog_id是一個primay鍵具有獨特的強制

你可以使用上的重複鍵創建行,如果不存在,如果它不

("INSERT INTO page_views (blog_id,count) VALUES ($blog_id,1) ON DUPLICATE KEY UPDATE count = count + 1") 
更新計數中,
+0

也是標準警告,如果blog_id來自用戶的瀏覽器,即在獲取字符串或發佈數據時,請確保使用類似mysqli_real_escape_string的內容來保護你自己從sql注入 – Joe

相關問題