2013-10-18 92 views
0

請原諒我,我會問這個問題,我是這個網站的新手。網絡計數器的邏輯語句

我試圖記錄訪問我的網站的訪問者數量(網絡計數器)erveryday

我的邏輯是if $date(realtime)等於$ dateDB(MAX(ADDDATE))`< - (在我的數據庫列),那麼網頁計數器加1 ...... 如果不是,它將插入新的數據再加入1(它意味着另一天)。

<?php 
    $dateDB = mssql_query("select adddate = max(CONVERT(DateTime,CONVERT(VARCHAR(10),Adddate,101)))from tbl_web_counter"); 
     if($date == $dateDB){ 
      mssql_query("update tbl_web_counter SET webcounter_dealerview = webcounter_dealerview + 1 WHERE adddate = (SELECT max(adddate) FROM tbl_web_counter)"); 
     }else{ 
      mssql_query("insert into tbl_web_counter (webcounter_dealerView) values (1) "); 
     } 
    ?> 

更新功能運行良好,但是如果語句是假的(這是$日期不等於$ dateDB(MAX(ADDDATE))

「IT仍在更新MAX(ADDDATE)不要插入新記錄」 ‘這意味着,我的語法沒有繼續* ELSE *’

它是我的語法有錯嗎?

+1

無法判斷您的語法是否正確。向我們提供您一直在寫的一些實際代碼。 – Mikk

+0

你確定與此?如果($ date = $ dateDB),我認爲它應該是如果($ date == $ dateDB) – Legionar

+0

看到我的答案在下面,你的語法是完全錯誤的。 – Legionar

回答

1

你確定($ date = $ dateDB)嗎?因爲$ dateDB是你選擇查詢的資源。

您必須使用mssql_fetch_assoc從資源獲取日期,然後將其與==運算符進行比較,然後使用update或insert into表格。

+0

它應該既不是。 '$ dateDB'是一個查詢資源,不是日期。 –

+1

@gerXpaulLlames:也許你認爲它超出了你想要的範圍,但這就是爲什麼你的代碼無法正常工作,因爲它不是_not_。 –

+0

...然後你通過寫'我認爲它應該是($ date == $ dateDB)'這是完全錯誤的。 –

0

我只是想在這裏給一個提示,不完全是一個答案(但與標題相關),但會幫助你。

始終記錄訪問者的IP和日期,並將IP地址+日期組合作爲唯一密鑰。這將有助於您保持訪問您網站的訪問者的正確唯一數量。這也可以防止記錄用戶進行的刷新次數。即每次用戶刷新頁面時,計數器都會上升。

+0

應該是一個評論,這是所有大膽的真正必要? –

+0

您的提示實際上是錯誤的,因爲IP作爲訪客的唯一標識符一點用處都不大。 –