2016-06-18 112 views
0

我編寫PHP中的評論系統,它使用一個表使用6行:PHP評論適度系統

  • ID(AI小學)
  • 狀態(無論是等待,批准或不批准)
  • 稱號(評論標題)
  • 消息(實際評論)
  • 日期時間(日期時間)
  • 學生(熱賣人名)ip(從計算機發布的ip)
  • 發佈評論時,狀態列會自動設置爲'waiting'。我正在製作一個頁面,每次顯示一行,還有兩個html按鈕,「Approve」和「Disapprove」,當其中一個按鈕被點擊時,狀態列分別更新爲這兩個按鈕的值。這裏是我的代碼:

    <?php 
    $servername = "localhost"; 
    $username = "root"; 
    $password = "root"; 
    $dbname = "kevin"; 
    
    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
        die("Connection failed: " . $conn->connect_error); 
    } 
    
    $sql = "SELECT * FROM waiting WHERE status = 'waiting' LIMIT 1"; 
    $result = $conn->query($sql); 
    
    if ($result->num_rows > 0) { 
        // output data of each row 
        while($row = $result->fetch_assoc()) { 
         echo " 
         <p><b>".$row["title"]."</b></p> 
         <p>".$row["message"]."</p> 
         <p><i>". $row["student"]."</i></p> 
         <p>". $row["datetime"]."&nbsp&nbsp&nbsp&nbsp". $row["ip"]."</p>. 
         <form action='' method='POST'> 
         <input type='button' name='approve' style='color:green;' value='Approve'>&nbsp&nbsp&nbsp&nbsp 
         <input type='button' name='disapprove' style='color:red;' value='Disapprove'> 
         </form> 
         "; 
         $id = $row["id"]; 
        if(isset($_POST['approve'])){ 
         $sql = "UPDATE waiting SET status='approve' WHERE id=".$id.""; 
    
         if ($conn->query($sql) === TRUE) { 
          echo "Record updated successfully - Approved"; 
         } else { 
          echo "Error updating record: " . $conn->error; 
         } 
        } 
        if(isset($_POST['disapprove'])){ 
         $sql = "UPDATE waiting SET status='disapprove' WHERE id=".$id.""; 
    
         if ($conn->query($sql) === TRUE) { 
          echo "Record updated successfully - Disapproved-"; 
         } else { 
          echo "Error updating record: " . $conn->error; 
         } 
        } 
        } 
    } else { 
        echo "0 results"; 
    } 
    $conn->close(); 
    ?> 
    

    會有另一頁爲最終用戶顯示與狀態欄閱讀「批准」的所有評論。

    +0

    好吧......有什麼問題?由於您限制爲1,因此您不需要「while」。 – chris85

    +0

    我實際上無法獲得「Approve」和「Disapprove」按鈕的工作。 –

    +0

    我想他是問如何讓這些按鈕實際上改變評論的價值。 – itachi

    回答

    0

    首先,將您輸入的類型從「按鈕」更改爲「提交」。

    二,如果移出「while」塊。

    第三,添加隱藏的輸入與ID字段,看看哪個記錄被更新。

    <?php 
    
    if(isset($_POST['approve'])){ 
        $sql = "UPDATE waiting SET status='approve' WHERE id=".$_POST['id'].""; 
    
        if ($conn->query($sql) === TRUE) { 
         echo "Record updated successfully - Approved"; 
        } else { 
         echo "Error updating record: " . $conn->error; 
        } 
    } 
    if(isset($_POST['disapprove'])){ 
        $sql = "UPDATE waiting SET status='disapprove' WHERE id=".$_POST['id'].""; 
    
        if ($conn->query($sql) === TRUE) { 
         echo "Record updated successfully - Disapproved-"; 
        } else { 
         echo "Error updating record: " . $conn->error; 
        } 
    } 
    
    $sql = "SELECT * FROM waiting WHERE status = 'waiting' LIMIT 1"; 
    $result = $conn->query($sql); 
    
    if ($result->num_rows > 0) { 
        // output data of each row 
        while($row = $result->fetch_assoc()) { 
         echo " 
         <p><b>".$row["title"]."</b></p> 
         <p>".$row["message"]."</p> 
         <p><i>". $row["student"]."</i></p> 
         <p>". $row["datetime"]."&nbsp;&nbsp;&nbsp;&nbsp;". $row["ip"]."</p>. 
         <form action='' method='POST'> 
         <input type='submit' name='approve' style='color:green;' value='Approve'>&nbsp;&nbsp;&nbsp;&nbsp; 
         <input type='submit' name='disapprove' style='color:red;' value='Disapprove'> 
         <input type='hidden' name='id' style='color:red;' value='".$row['id']."'> 
         </form> 
         "; 
         $id = $row["id"]; 
        } 
    } else { 
        echo "0 results"; 
    } 
    $conn->close(); 
    ?> 
    } else { 
        echo "0 results"; 
    } 
    $conn->close(); 
    ?>