2016-06-18 2 views
0

Я программирование системы комментариев в PHP, который использует одну таблицу с шестью строками:PHP Комментарии Модераторов системы

  • идентификатором (AI Primary)
  • статуса (либо ожидания, утвержденной или отклоненным)
  • названия (комментарий субъект)
  • сообщений (фактический комментарий)
  • студента (имя человека, которое разместили)
  • даты и времени (дата время)
  • ip (ip компьютера, отправленного с)
  • Когда комментарий отправлен, столбец статуса автоматически устанавливается на «ожидание». Я делаю страницу, на которой отображаются одна строка за раз и две кнопки 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

    Хорошо, в чем проблема? Вам не нужно 'while', так как вы ограничены 1. – chris85

    +0

    Я не могу на самом деле получить кнопки« Утвердить »и« Отклонить ». –

    +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(); 
    ?> 
    
    Смежные вопросы