2017-03-02 53 views
2

我在YouTube上按照教程做一個簡單的像/不同按鈕爲我的狀態系統,我得到了大部分完成,但它不會更新我喜歡,而不是插入像數據庫,請幫我說什麼是錯,我想現在這麼多..PHP喜歡/不像按鈕與jquery

函數來獲取狀態:

function getStatus($conn) { 
     $sql = "SELECT * FROM status ORDER BY sid DESC"; 
     $query = mysqli_query($conn, $sql); 
     while ($row = $query->fetch_assoc()) { 
      echo "<div class='post'>".$row['message']."<br>"; 

       $result = mysqli_query($conn, "SELECT * FROM status_like WHERE uid=1 and sid=".$row['sid'].""); 
       if (mysqli_num_rows($result) == 1) { 
        echo "<span><a href='' class='unlike' id='".$row['sid']."'>unlike</a></span>"; 
       } else { 
        echo "<span><a href='' class='like' id='".$row['sid']."'>like</a></span></div>"; 
       } 
       } 


     } 

jQuery代碼

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
      <script type="text/javascript"> 
      $(document).ready(function(){ 
       $('.like').click(function(){ 
        var sid = $(this).attr('id'); 
        $.ajax({ 
         url: 'test.php', 
         type: 'post', 
         async: false, 
         data: { 
          'liked': 1, 
          'sid': sid 

         }, 
         success:function(){ 

         } 
        }); 
       }); 
      }); 
      </script> 

和最後的PHP代碼,我認爲這個問題是:在點擊功能

if (isset($_POST['liked'])) { 
     $sid = $_POST['sid']; 
     $sql = "SELECT * FROM status WHERE sid=$sid"; 
     $query = mysqli_query($conn, $sql); 
     $row = mysqli_fetch_array($query); 
     $n = $row['likes']; 
     $uid = 1; 

     $sql2 = "UPDATE status SET likes=$n+1 WHERE sid=$sid"; 
     $sql3 = "INSERT INTO status_like (uid, sid, username) VALUES (1, '$sid', '$uid')"; 
     mysqli_query($conn, $sql2); 
     mysqli_query($conn, $sql3); 
     exit(); 


    } 
+1

設置的報警..如果(isset($ _ POST [ '喜歡'])){呼應 }並告訴我 –

+0

okey我加了alert('test');在點擊功能裏面,當我點擊「像按鈕」時,我得到了警報,但我仍然不明白在哪裏放回聲。 @vSugumar –

+0

如果。還打開問題代碼和代碼網絡選項卡中的錯誤報告,並點擊回覆 –

回答

1
if (isset($_POST['liked'])) { 
     $sid = $_POST['sid']; 
     $sql = "SELECT * FROM status WHERE sid=$sid"; 
     $query = mysqli_query($conn, $sql); 
     $row = mysqli_fetch_array($query); 
     //$n = $row['likes']; // your code    
     $n = (int) $row['likes']; // try like this.. might be likes in string so convert to int 
     $uid = 1; 

     //$sql2 = "UPDATE status SET likes=$n+1 WHERE sid=$sid"; // Your code 

     // Do like this `status` in query because status is reserved keyword of MySql for more details you could visit this link https://dev.mysql.com/doc/refman/5.7/en/keywords.html 
     $sql2 = "UPDATE `status` SET likes=$n+1 WHERE sid=$sid"; 
     $sql3 = "INSERT INTO status_like (uid, sid, username) VALUES (1, '$sid', '$uid')"; 
     mysqli_query($conn, $sql2); 
     mysqli_query($conn, $sql3); 
     exit(); 


    }