Удалить скрипт не удаляет, а скорее обновляет страницу - PullRequest
0 голосов
/ 19 января 2019

Я создал базу данных, в которой я храню некоторые фрагменты данных и отображаю их в таблице HTML, я помещаю кнопку удаления, но когда я запускаю скрипт, чтобы удалить его, скорее обновляет его

Я не знаю, где это терпит неудачу, и вот мой код таблицы

 <table class="table table-striped table-advance table-hover">
            <tbody>
<?php 
  $conn = mysqli_connect("localhost", "blog", "0000", "blog");
  if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

  $result = mysqli_query($conn,"SELECT * FROM room_details ");

        echo "<tr>
                <th> Room Name</th>
                <th> Room No.</th>        
                <th> Type</th>
                <th> Price</th>
                <th> Action</th>
              </tr>";
 while($row = mysqli_fetch_array($result))
 {

         echo "<tr>";
         echo "<td>".$row['room_name']."</td>";
         echo "<td>".$row['room_number']."</td>";  
         echo "<td>".$row['room_type']."</td>";
         echo "<td>".$row['room_price']."</td>";
         echo "<td>"?><div class="btn-group">
                    <a class="btn btn-danger" name="delete" 
 href="incl/process.php?delete=<?php echo $row['id']; ?>">DELETE<i 
 class="icon_close_alt2"></i></a>
                  </div></td>
         <?php echo "</tr>";
 } ?>    
          </tbody>
          </table>

и это код обработки удаления,

<?php
$conn = mysqli_connect("localhost", "blog", "0000", "blog");
if(isset($_GET['delete'])) {

$id = $_GET['id'];

$stmt = $mysqli->prepare("DELETE FROM room_details WHERE id = ?");
$stmt->bind_param('i', $id);
$stmt->execute(); 
$stmt->close();
header("Refresh: 2; url=rooms.php");
echo '<div class="alert alert-info fade in">
              <strong>SUCCESS!!</strong> Data deleted!.
            </div>';
}

?>

Строка не удаляется, но теперь она зависает на process.php. Ничего не происходит, где я ошиблась?

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Кроме того, вы должны установить $id, используя $id = $_GET['delete']; вместо $id = $_GET['id'];, поскольку delete - это то, что вы передаете в строке запроса, метод prepare должен вызываться на $conn.

Изменить эту строку:

$stmt = $mysqli->prepare("DELETE FROM room_details WHERE id = ?");

На эту строку:

$stmt = $conn->prepare("DELETE FROM room_details WHERE id = ?");
0 голосов
/ 19 января 2019

Не совсем уверен, почему он зависает, но вы не установили переменную с именем 'id'.Должно быть:

$id = $_GET['delete'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...