2014-12-07 71 views
0

剛剛得到幫助,使我的瀏覽量的代碼工作...現在我想瀏覽量只計數1爲每個會話/ IP。Mysql瀏覽量每次會話更新

在我用戶(news.users)表,我有可以使用這些細胞:(試圖建立一些早期沒有工作了所以這些未使用)

ip_reg, ip_visit, dtreg, dtvisit, visits, pass 

代碼我有一個現在的工作看起來像這樣:

//Adds one to the counter 

    mysql_query("UPDATE news SET posts = posts + 1, published=published, last_edit=last_edit WHERE id=$id"); 

//Retreives the current count 
$count = mysql_fetch_row(mysql_query("SELECT posts FROM news WHERE id=$id")); 
//Displays the count on your site print 


echo "<label>Viewed: "; 
echo $count[0]; 
echo " times</label>"; 

?> 

我可以使用一些在用戶未使用的細胞來自重新加載頁面以獲取一個網頁上獲得更高的觀點停止用戶?我該怎麼做:P

+0

@ Ronald01990任何建議:P – Milla 2014-12-07 13:15:45

回答

0

就像我建議我會把讀取的新聞文章放在用戶的會話中。試試這個:

if (!isset($_SESSION['read_news']) || !is_array($_SESSION['read_news'])) { 
    $_SESSION['read_news'] = array(); 
} 

if (!in_array($id, $_SESSION['read_news'])) { 
    $_SESSION['read_news'][] = $id; 
    mysql_query("UPDATE news SET posts = posts + 1 WHERE id=$id"); 
} 

如果這樣做不行,你沒有啓用會話,你應該把session_start();某處項目的頂部。確保在每個請求中調用該行。

+0

noob問題再次....你正在接受的'read_news',這是一個細胞? :P – Milla 2014-12-07 13:30:22

+0

我可以使用Cookie嗎?在我的user.inc文件中我有這樣一行: 'global $ USER_COOKIE,$ _ COOKIE,$ COOKIE_KEY; $ this-> is_anonymous = 0; $ cookie = $ _COOKIE [$ USER_COOKIE]; if(isset($ COOKIE_KEY)){' – Milla 2014-12-07 13:34:22

+0

不,它是超全局'$ _SESSION'變量中的一個鍵。 '$ _SESSION'只是一個數組,可以存儲與用戶會話相關的信息。當你調用print_r($ _ SESSION)時,你可以看到裏面有什麼。當你爲'$ _SESSION'數組添加一個值(例如'$ _SESSION [] ='foo';')並點擊刷新時,它應該仍然在數組中。 – redelschaap 2014-12-07 13:34:34

相關問題