2017-03-02 58 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(); 


    }