2013-06-19 66 views
0

我試圖讓喜歡和喜歡使用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

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – h2ooooooo

+0

首先,你應該使用'isset'函數來檢查你的'$ _POST ['id']'變量是否存在。 –

回答

0

的問題是,導致被粘住「不像」您的按鈕算法。

你的基本條件是:if ($count==0)總是因此,您的代碼卡中總是執行else和汽車無遞減喜歡的聲明$sql_in = "insert into social (id_user,track_id) values ('$ip','$id')"; is run.

後返回大於0。

你需要改變你的邏輯更:

  • 檢查是否存在的喜好和增加對特定用戶。
  • 如果已經存在,則刪除記錄。
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) 

它很可能是最好有一個投票表,而不是增加和對社會表中刪除記錄。每票一行。

相關問題