кнопка изображения для удаления пользователей из mysql

#php #mysql

#php #mysql

Вопрос:

итак, у меня проблема

 $query = "SELECT * FROM users;";
$result = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($result)) {

        ?>
        <tr>
            <td><?php echo $row['fio']; ?></td>
            <td><?php echo $row['born_date']; ?></td>
            <td><?php echo $row['address']; ?></td>
            <td><?php echo $row['number']; ?></td>
            <td><?php echo $row['work_post']; ?></td>
            <td><?php echo $row['inwork_date']; ?></td>

            <td><center><form action="delete.php" method="POST"><input type="hidden" name="user_id" value="'.$row['user_id'].'"><input type="Submit" class="deleteButton" value="Delete"></form></center></td>
        </tr>
        <?php
  

и в delete.php У меня есть

 <?php

    if(isset($_POST['Submit'])) {

        $query = "DELETE FROM users WHERE user_id='$user_id'";

        $result = mysql_query($query) or die(mysql_error());

        header("Location: edit.php");

        exit;
    }

?>
  

Я вижу список пользователей — это работает! Но я не могу никого удалить.

Комментарии:

1. Вставьте delete.php это var_dump($_POST); , чтобы увидеть, что действительно отправляется на сервер.

2. массив ‘user_id’ => строка «.$row[‘user_id’].» (длина=19) ‘Submit’ => строка ‘Delete’ (длина = 6)

Ответ №1:

Вы неправильно вставляете идентификатор из-за того, что интерпретатор PHP не «активен» там, где вы, кажется, думаете.

Как таковое, измените…

<input type="hidden" name="user_id" value="'.$row['user_id'].'">

…кому…

<input type="hidden" name="user_id" value="<?php echo $row['user_id']; ?>">

…и все будет хорошо. (Это случается со всеми нами время от времени.)

Кстати, перенос каждой ссылки удаления в форму, возможно, немного чрезмерен — есть причина, по которой вы не хотите использовать «обычную» ссылку?

Обновить

Вам также, скорее всего, потребуется явно использовать переменную HTTP post на вашей странице удаления следующим образом:

 $query = "DELETE FROM users WHERE user_id='" . intval($_POST['user_id']) . "'";
  

Комментарии:

1. да, вы правы — сейчас это хороший пост, но … возможно, я ошибаюсь в delete.php — пустой экран — запрос и заголовок не работают

2. есть 1 причина — это только для дизайна

3. @user711227 Проверьте свои журналы ошибок, если вы получаете пустой экран.

4. хорошо, спасибо, я забыл включить (‘../mysql.php ‘); где я подключаюсь к mysql, теперь заголовок работает, но удаление из mysql по-прежнему не работает … извините за мой английский

5. @user711227 Я обновил свой ответ настройкой, которая, надеюсь, должна помочь. 🙂

Ответ №2:

 <input type="Submit" class="deleteButton" value="Delete">
  

Вам нужно имя в этом поле, чтобы передать ваш if(isset($_POST[‘Submit’])) {

 <input type="Submit" class="deleteButton" value="Delete" name="Submit">
  

На несколько иной ноте, я надеюсь, вы выполняете какую-то проверку того, что пользователь, выполняющий вызов delete, имеет разрешения.