#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, имеет разрешения.