HTML / PHP Удалить поле из таблицы, подключенной к базе данных - PullRequest
0 голосов
/ 10 июля 2020

Пытаюсь добавить поле кнопки удаления в правой части моей таблицы. Это моя таблица в main. php

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>One</th>
      <th>Two</th>
      <th>Three</th>
    </tr>
  </thead>
  <tbody>
    <?php
      if ($result = $mysqli->query($query)) {
          while ($row = $result->fetch_assoc()) {
              echo
              "<tr>
              <td>{$row['id']}</td>
              <td>{$row['one']}</td>
              <td>{$row['two']}</td>
              <td>{$row['three']}</td>
              <td><a href='/delete.php?id=<?php echo {$row['id']}; ?>'>Delete</a></td><?php
              </tr>\n";
              
          }
          /*freeresultset*/
          $result->free();
      }
    ?>
  </tbody>
</table>

delete. php:

<?php

include "dbConn.php"; // Using database connection file here

$id = $_GET['id']; // get id through query string

$del = mysqli_query($db,"DELETE FROM number_table WHERE id = '$id'"); // delete query

if($del)
{
    mysqli_close($db); // Close connection
    header("location:main.php"); // redirects to all records page
    exit;   
}
else
{
    echo "Error deleting record"; // display error message if not delete
}
?>

В моей базе данных есть следующие столбцы: id (первичный ключ), один, два, три. Кнопка удаления должна подняться без каких-либо ошибок, когда я нажимаю ее, она перенаправляется на main. php, но строка не удаляется. Есть ли у кого-нибудь из вас предложения, почему это так?

Ответы [ 3 ]

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

Привет, у меня была аналогичная проблема, пожалуйста, посмотрите, что я сделал ниже,

Сначала я объявил свой идентификатор $ и использовал его для удаления

<?php
      if ($result = $mysqli->query($query)) {
          while ($row = $result->fetch_assoc()) {
          $id = $row['id']; //added variable here 
               echo
              "<tr>
              <td>{$row['id']}</td>
              <td>{$row['one']}</td>
              <td>{$row['two']}</td>
              <td>{$row['three']}</td>
              <td><a href='/delete.php?id=$id'>Delete</a></td><?php  //changed link to $id
              </tr>\n";
              
          }
          /*freeresultset*/
          $result->free();
      }
    ?>

вот что работал у меня. Также вы должны проверить, удаляются ли ваши записи, и вы просто не получаете сообщение об ошибке, потому что ваше перенаправление не завершается в папке, в которой вы находитесь.

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

Вам не нужно снова вызывать php для $ row ['id']. Вы уже находитесь в php.

main. php

<table>
      <thead>
        <tr>
          <th>ID</th>
          <th>One</th>
          <th>Two</th>
          <th>Three</th>
        </tr>
      </thead>
      <tbody>
        <?php
        include "dbConn.php";
        $query = "SELECT id, name FROM number_table";
          if ($result = $mysqli->query($query)) {
              while ($row = $result->fetch_assoc()) {
                  echo
                  "<tr>
                    <td>{$row['id']}</td>
                      <td>{$row['one']}</td>
                      <td>{$row['two']}</td>
                      <td>{$row['three']}</td>
                    <td><a href='/delete.php?id={$row['id']}'>Delete</a></td>
                  </tr>";
              }
              /*freeresultset*/
              $result->free();
          }
        ?>
      </tbody>
    </table>

удалить. php

<?php
    include "dbConn.php"; // Using database connection file here

    $id = $_GET['id']; // get id through query string

    include "dbConn.php"; // Using database connection file here
    $sql = "DELETE FROM number_table WHERE id=$id";

    if ($mysqli->query($sql) === TRUE) {
      header("location:/test/index.php"); // redirects to all records page
        exit;
    } else {
      echo "Error deleting record: " . $mysqli->error;
    }
?>
0 голосов
/ 10 июля 2020

Я заставил это работать, изменив эту строку с:

<td><a href='/delete.php?id=<?php echo {$row['id']}; ?>'>Delete</a></td><?php

на

<td><a href='delete.php?id={$row['id']};'>Delete</a></td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...