我尝试使用ajax和mysql制作类似的系统。 点击喜欢,像添加一样再次点击,如最小1。 我想,当我点击不像时,它会回归喜欢。 但是这个,不像直到负......
这是我的mysql
<?php
include 'connect.php';
session_start();
$ip=$_SESSION['id'];
if ($_POST['id'])
{
$id=$_POST['id'];
$ip_sql=mysql_query("select id_user from social where track_id='$id' and id_user='$ip'");
$count=mysql_num_rows($ip_sql);
if ($count==0)
{
$sql = "update track set jumlah_like=jumlah_like+1 where track_id='$id'";
mysql_query($sql);
$sql_in = "insert into social (id_user,track_id) values ('$ip','$id')";
mysql_query($sql_in);
$result=mysql_query("select jumlah_like from track where track_id='$id'");
$row=mysql_fetch_array($result);
$love=$row['jumlah_like'];
?>
<span class="broke_love" align="left"><?php echo $love; ?></span>
<?php
}
else
{
$sql = "update track set jumlah_like=jumlah_like-1 where track_id='$id'";
mysql_query($sql);
//$sql_in = "insert into social (id_user,track_id) values ('$ip','$id')";
//mysql_query($sql_in);
$result=mysql_query("select jumlah_like from track where track_id='$id'");
$row=mysql_fetch_array($result);
$love=$row['jumlah_like'];
echo "<span class=on_img align=left>$love</span>";
}
}
?>
答案 0 :(得分:0)
问题在于算法导致你的按钮卡在“不像”上。
您的基本条件是:if ($count==0)
在语句$sql_in = "insert into social (id_user,track_id) values ('$ip','$id')"; is run.
之后总是返回大于0
因此,你的代码总是在执行else时陷入困境,并不断减少喜欢。
您需要将逻辑更改为:
答案 1 :(得分:0)
我认为您遗漏了脚本中的内容,因为您似乎没有从社交表中删除记录。
但是,大多数选择和更新都可以使用单个SQL完成。某物 如: -
UPDATE track a
LEFT OUTER JOIN social b ON a.track_id = b.track_id AND id_user='$ip'
SET a.jumlah_like = a.jumlah_like + IF(b.track_id IS NULL, 1, -1)
拥有投票表而不是在社交桌上添加和删除记录可能会更好。每票一排。