2011-10-06 7 views
-1

マイusersテーブルのフィールドには、ID、名前、ツイッターで、クリック (クリックが隠されている)は、私はPHPとjQueryを使用して、データベース内のユーザーのクリックを保存したい

ロジックは次のとおりです。ユーザーは、それを他のユーザーのTwitter IDでクリックするたびに新しい更新されたクリックをデータベースに保存する必要があります。 私は上記のロジックを実行できます。

しかし、どのリンクでマウスがクリックしたかを検出する方法はわかりません。 意味 リンクがhttp://www.twitter.com/twitterの場合、そのリンクをクリックするとそのリンクのクリック数を2増やす必要があります。 私に適切な情報を入力してください。 助けてください?

更新:

<?php 

$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("users", $con); 

$result = mysql_query("SELECT * 
FROM `users` 
ORDER BY `users`.`clicks` DESC 
LIMIT 0 , 30"); 

while($row = mysql_fetch_array($result)) 
    { 
    echo $row['id'] . " <a href=" . $row['twitter']." target='_blank'>".$row['clicks']."</a>"; 
    echo "<br />"; 
    } 
// some click detection code may be here.. 


mysql_close($con); 


?> 

だけいずれかは、どのようにjqueryのが必要な場合、その後、 [「クリック」] $行から変数にクリックを保存plsは最高の私の上記のコードに一致する適切なコードを提供することを教えて。

+0

あなたの質問ラットを編集してください(エコーをチェックしたり、ペーストをコピーし、私はそれが完璧に動作を期待します)そのコードをコメントとして追加するのではなく、それは私の頭を痛めます。 – Bruce

答えて

-1

あなたはクリックを保存するために、リダイレクトページを作成する必要があります。そして、あなたは、イベントハンドラをバインドするjQueryのclickメソッドを使用して、実際にデータベースを更新し、あなたのPHPスクリプトにAJAX要求を発射することができます...これへのリンクを変更

<?php 

$con = mysql_connect("localhost", "root", ""); 
if (!$con) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("users", $con); 

$result = mysql_query("SELECT * 
FROM `users` 
ORDER BY `users`.`clicks` DESC 
LIMIT 0 , 30"); 

while ($row = mysql_fetch_assoc($result)) { 
    echo '<a href="redirect.php?id='. $row['id'] .'" target="_blank">'. $row['clicks'] .'</a>'; 
    echo "<br />"; 
} 
mysql_close($con); 
?> 

とredirect.php

<?php 

$con = mysql_connect("localhost", "root", ""); 
if (!$con) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("users", $con); 
// get id 
$id = (int) $_GET['id']; 
// prepare query 
$query = mysql_query("SELECT * 
FROM `users` 
WHERE id = $id"); 
// fetch 
$result = mysql_fetch_assoc($query); 
// add click 
$newclicks = $result['clicks'] + 1; 
// execute 
mysql_query("UPDATE users SET clicks = $newclicks WHERE id = $id"); 
// close 
mysql_close($con); 
// redirect 
header('Location: '. $result['twitter']); 
?> 
+1

-1 OPがjQueryを使ってこれをやりたいのですjQueryベースのソリューションではありません。 – Bruce

+0

はい.. それは私のために働いています... ありがとうVyriel。 – Prince

2

クリックイベントハンドラをリンクに添付する必要があります。これを行うには、いくつかの共通の識別子が必要になります(この場合、すべてのTwitterリンクに共通のクラス名を付けるのが最善の方法です)。例としてtwitterを使用します。 ...

$(".twitter").click(function() { 
    $.post("script.php", { 
     user: theClickedUserId //I'm assuming you'll want to pass in something to your script here 
    }, function() { 
     //Done! 
    } 
}); 
+0

あなたの答えを理解していません:( script.phpの場合 – Prince

+0

'script.php'は実際にデータベースを更新するコードを含むPHPファイルです –

関連する問題