Я пытался удалить запись в моей базе данных. Поэтому в основном я создал таблицу, содержащую все мои записи. Теперь мне нужно сделать, когда я нажимаю на ссылку «DELETE», она удалит выбранную запись.
Вот как это выглядит:
Поэтому в основном у меня есть 3 страницы.
1. page.php
2. add.php
3. delete.php
Вот мой файл page.php:
<table border="1"> <thead> <th>email</th> <th>date</th> <th>delete</th> </thead> <tbody> <tr> <?php foreach($emails as $mail){ ?> <td><?php echo $mail['email']; ?></td> <td><?php echo $mail['date']; ?></td> <td><?php echo "<a href='delete.php?id=". $mail['id']. "'>DELETE</a>"; ?></td> </tr> <?php } ?> </tbody> </table>
Вот мой файл add.php:
<?php require("new-connection.php"); session_start(); $email = $_POST['email']; if(empty($_POST['email']) AND (filter_var($email, FILTER_VALIDATE_EMAIL) === false)) { $_SESSION['message'] = "email cannot be blank"; }else{ $query = "INSERT INTO email_tbl (email, date) VALUES('$email', NOW())"; $insertEmail = run_mysql_query($query); if(run_mysql_query($query)) { $_SESSION['message'] .= "New RECORD has been added correctly!"; } else { $_SESSION['message'] .= "Failed to add new Interest"; } } header('Location: email.php'); ?>
Вот мой файл delete.php:
<?php require("new-connection.php"); session_start(); $query = "DELETE FROM email_tbl WHERE id={id} LIMIT 1"; $deleteEmail = run_mysql_query($query); if(run_mysql_query($query)) { $_SESSION['message'] .= "RECORD has been DELETED correctly!"; } else { $_SESSION['message'] .= "Failed to DELETE RECORD"; } header('Location: email.php'); ?>
Итак, теперь, когда я нажимаю ссылку на удаление, она должна удалить кнопку в реальном времени. Есть идеи?
Измените файл delete.php, чтобы получить параметр url:
<?php require("new-connection.php"); session_start(); $id = $_GET['id']; $query = "DELETE FROM email_tbl WHERE id='$id' LIMIT 1"; $deleteEmail = run_mysql_query($query); if($deleteEmail) { $_SESSION['message'] .= "RECORD has been DELETED correctly!"; } else { $_SESSION['message'] .= "Failed to DELETE RECORD"; } header('Location: email.php'); ?>
Что касается вашего add.php, вы используете это:
$insertEmail = run_mysql_query($query); if(run_mysql_query($query))
Вы должны изменить его на это:
$insertEmail = run_mysql_query($query); if($insertEmail)
Сейчас вы выполняете запрос дважды, дважды вызывая run_mysql_query. Это должно исправить это
Обновите файл delete.php:
$id = $_GET['id']; $query = "DELETE FROM email_tbl WHERE id='$id' LIMIT 1";
а также проверьте раздел ниже: вы выполняете запрос дважды. поэтому очевидно, что он добавит одну и ту же запись дважды.
$insertEmail = run_mysql_query($query); if(run_mysql_query($query)) { $_SESSION['message'] .= "New RECORD has been added correctly!"; }
Измените код, чтобы использовать только run_mysql_query.
$query = "DELETE FROM email_tbl WHERE id=".$_GET['id']." LIMIT 1";
Смысл когда функция run_mysql_query
в php?
http://php.net/manual-lookup.php?pattern=run_mysql_query&scope=quickref