我的用户表字段是id,name,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);
?>
任何人都告诉我如何在$ row ['clicks']的变量中存储点击次数 如果需要jquery,那么请提供最符合我上述代码的正确代码。
答案 0 :(得分:2)
您需要将单击事件处理程序附加到链接。要做到这一点,他们将需要一些通用标识符(在这种情况下,最好给所有Twitter链接一个公共类名。我将使用twitter
作为示例)。然后你可以使用jQuery的click
方法来绑定事件处理程序,并向实际更新数据库的PHP脚本发出一个AJAX请求:
$(".twitter").click(function() {
$.post("script.php", {
user: theClickedUserId //I'm assuming you'll want to pass in something to your script here
}, function() {
//Done!
}
});
答案 1 :(得分:-1)
你必须创建一个重定向页面来存储点击次数...... 修改此链接...(检查回声或复制粘贴,我希望它完美无缺地工作)
<?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']);
?>