2012-03-31 38 views
1

我想使計數這是在我的網站,並增加了1到mysql數據庫中的LINKCOUNT行鏈路上的點擊代碼,但有麻煩了即時編碼。創建鏈接上點擊次數在PHP

這是我的代碼,當我點擊我的網站上的鏈接:

mysql_connect("localhost", "123", "123") or die(mysql_error()); 
mysql_select_db("123") or die(mysql_error()); 

$result = mysql_query("SELECT id, sitename FROM links WHERE siteurl = \"www\""); 
$row = mysql_fetch_array($result); 

mysql_query("INSERT INTO links (linkcount) VALUES $row['linkcount']"); 
$count = 0; 

不知道這是做的正確的方式,任何想法的代碼是什麼?

編輯

我現在可以加入1到LINKCOUNT行,但每一個環節我點擊添加到同一行,我需要每一個環節有單獨的一行,然後單擊計數。

回答

5

嘗試此查詢:

UPDATE `links` SET `linkcount` = `linkcount` + 1 WHERE `siteurl` = 'www' 

以及您的代碼:您的查詢不選擇linkcount列,因此$row['linkcount']始終爲空。

編輯:

如果您的表不包含要跟蹤每一個環節行,你應該使用那種代碼:

mysql_query("UPDATE `links` SET `linkcount` = `linkcount` + 1 WHERE `siteurl` = 'SITE_URL'"); 
if(mysql_affected_rows() == 0) 
    mysql_query("INSERT INTO `links` (`sitename`, `siteurl`, `linkcounter`) VALUES ('SITE_NAME', 'SITE_URL', 1)"); 

您必須插入正確的SITE_NAME和SITE_URL

+0

謝謝你,我應該加入你的代碼的行或更換從我與更新代碼行之一嗎? – user1295105 2012-03-31 17:44:39

+0

如果你不需要php端的當前計數器,那更新語句就足夠了。 – MarcinJuraszek 2012-03-31 17:47:21

+0

我已刪除從我的代碼的最後兩行,並與您的代碼替換,但它不添加1到我的數據庫 – user1295105 2012-03-31 17:50:25

1

您可以md5散列鏈接。使用鏈接的md5sum作爲主鍵並檢查表中的鏈接。如果它已經存在,那麼做一個更新或者插入的md5sum與linkcount = 0表。

遵循以下步驟:

  • 獲取鏈接的的md5sum
  • 火表上的select查詢以檢查的md5sum
  • 如果有超過0行還擊更新查詢像

UPDATE links SET linkcount = linkcount + 1 WHERE md5sum = "md5sum"

  • 否則插入新行插入到表linkcount = 1