Удалить запись из базы данных, в ней говорится, что URL-адрес запроса не найден - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в PHP, и я пытаюсь сделать базовый c CRUD с PHP. Я могу добавить запись и отобразить ее в таблице с двумя кнопками действий в одной строке. Однако я не могу удалить запись из базы данных и обновить таблицу (с удалением данных). Когда я наводил указатель мыши на кнопку удаления, мне кажется, что переменная анализируется, но когда я нажимаю кнопку удаления, появляется сообщение «URL не найден». Я включил часть своего кода ниже. Заранее спасибо.

Таблица, в которой показаны все записи из базы данных:

    <div class="form-group">
      <table class='table'>
          <thead>
            <tr>
              <th>First name</th>
              <th>Last name</th>
              <th>Gender</th>
              <th>Location</th>
              <th colspan="2">Action</th>
            </tr>
          </thead>
          <?php
            $result = $conn->query('SELECT * FROM tb_user ORDER BY id DESC') or die($conn->error);
            while($row = $result->fetch_object()):?>
            <tr>
              <td><?php echo $row->first_name; ?> </td>
              <td><?php echo $row->last_name; ?></td>
              <td><?php echo $row->gender; ?></td>
              <td><?php echo $row->place; ?></td>
              <td colspan="2">
                <a href="index.php?edit<?php echo $row->id; ?>" class="btn btn-info">Edit</a>
                <a href="process.php?delete=<?php echo $row->id; ?>" class="btn btn-danger">Delete</a>
              </td>
            </tr>
                <?php endwhile; ?>
        </table>
      </div>

Вот код «Удалить»:

   if(isset($_GET['delete'])){
      $uId = $_GET['delete'];
      $sql = "DELETE FROM tb_user WHERE id = $uId";
      $conn->query($sql);

      $_SESSION['message'] = "Record has been deleted!";
      $_SESSION['msg_type'] = "danger";
      header("location: index.php");
      
   }

Я смог перейти на пустую страницу с правильным URL-адресом вместо получения ошибки «URL-адрес не найден».

Проблема заключалась в том, что мой файл process.php не находился в том же каталоге, что и мой файл index.php.

Ответы [ 2 ]

0 голосов
/ 14 июля 2020
  1. процесс. php должен быть включен в начало индекса. php. Если нет (вы не добавили его вверху), header("Location: index.php"); не будет работать. В этом случае вы не можете перенаправить с помощью функции заголовка PHP, и вам следует использовать функцию перенаправления javascript, потому что заголовок уже был отправлен в буфер. Вы можете подтвердить это после включения всех журналов с помощью функции ini_set.

Включение всех ошибок и предупреждений.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Процесс

. php находится в папке includes /. Таким образом, вы можете получить ошибку 404 при перенаправлении. То есть после удаления записи ваш URL-адрес должен включать / index. php вместо index. php Самый простой способ - поместить process. php в каталог того же уровня index. php

Обновленный источник: https://github.com/swdreams/CRUD

0 голосов
/ 14 июля 2020

При обновлении sh страница удалила удаленную строку, это код удаления в индексе. php или в процессе. php, если после обновления страницы sh исчезнет, ​​это означает, что код запущен в индексе . php и код не обновляет страницу sh, если код в процессе. php убедитесь, что страница находится в том же каталоге, когда вы говорите (когда я нажал кнопку удаления, он говорит, что URL не найдено), что означает, что код работает, потому что он удалил строку, но не обновил sh таблицу

...