2012-03-31 1 views
1

私のウェブサイトにあるリンクのクリック数をカウントし、mysqlデータベースのLINKCOUNT行に1を加算するコードを作成したいのですが、コーディングに問題があります。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; 

わかりませんの?私は今LINKCOUNT行に1を追加することができますが、私はをクリックし、すべてのリンクは、同じ行に追加されます

EDIT

、私は別々の行を持っているし、カウントをクリックして、各リンクを必要としています。

答えて

5

は、この文字列で検索してください:

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

そして、あなたのコードについて:あなたのクエリがlinkcount列を選択していないので、$row['linkcount']は常にnullです。

EDIT:

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

で、テーブルに新しい行を挿入し、私はあなたのコードの行を追加またはUPDATEで自分のコードからのラインのものを置き換えるべきである、あなたに感謝? – user1295105

+0

php側に現在のカウンタが必要ない場合は、更新ステートメントで十分です。 – MarcinJuraszek

+0

コードから最後の2行を削除してコードに置き換えましたが、データベースのLINKCOUNT列に1を追加しません。 – user1295105

1

md5でリンクをハッシュすることができます。リンクのmd5sumをプライマリキーとして使用し、テーブル内のリンクを確認します。すでに存在する場合は、更新するか、linkcount = 0の表にmd5sumを挿入します。

  • リンクのmd5sumが
  • 火0行が更新クエリ火を返さ以上ある場合は、そのmd5sumを
  • をチェックするためにテーブルの上に、選択クエリを取得:

    は、次の手順に従ってください以下のよう

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

    エルス
  • linkcount = 1
関連する問題