2013-10-18 121 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作为访客的唯一标识符一点用处都不大。 –