Кнопка удаления, которая удаляет строку базы данных

#php #function

#php #функция

Вопрос:

Я только что создал функцию php

 function deletebooking($orderID){

    $sql="DELETE FROM bs_reservations WHERE id='".$orderID."'";
    $result=mysql_query($sql) or die("oopsy, error when tryin to delete events 2");

}
  

У меня есть файл .php, который обрабатывает отправленную форму, а затем отображает HTML-страницу. Как мне добавить кнопку удаления бронирования, которая вызывает вышеупомянутую функцию на HTML-страницу. Переменная $OrderID уже установлена.

Предложения приветствуются

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

1. Добавьте (int) прямо перед вашим $orderID в запросе.

Ответ №1:

Вы можете использовать код javascript на кнопке, которую вы нажимаете, чтобы удалить запись как

 <input type="button" name-"abc" id="abc" onclick="return Deleteqry(<?php echo $orderID ?>);"/>
  

Теперь вы можете написать функцию javascript внутри <head></head> как

 function Deleteqry(id)
{ 
  if(confirm("Are you sure you want to delete this row?")==true)
           window.location="yourpagename.php?del=" id;
    return false;
}
  

Теперь вы можете написать в верхней части вашей страницы как

  if($_GET['del'])
   {
    deletebooking($orderID);

   }    
  

Здесь мы используем оповещение о сообщении для подтверждения удаления с помощью окна предупреждения javascript…

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

1. Спасибо, приятель, с помощью инструкции if я сохраняю это в том же файле или это в «yourpage.php »

2. да, вы можете написать код if($_GET[‘del’]) поверх yourpagename.php файл

3. по какой-то причине это не удаляет резервирование. что-то не так с моим sql

4. Прежде всего, проверьте, установлен ли ($OrderID) или нет. Вы можете повторить $OrderID. Также убедитесь, что вы написали функцию function deletebooking($OrderID) на той же странице, а тип <input> — кнопка не отправлять.

5. какого типа должна быть кнопка ввода? Я повторил это, но ничего не появилось, означает ли это, что это на самом деле не было передано? <?php включает «includes/dbconnect.php «; включить «includes/functions.php «; if($_GET[‘del’]) { deletebooking($OrderID); } echo $OrderID; ?>

Ответ №2:

Две вещи. Сначала найдите «SQL-инъекция». Очистите входные данные вашего запроса.

Второе: не делайте этого. Это не очень хорошая идея. Если orderID на странице уже установлен параметр, то, предположительно, пользователь может изменить его на все, что захочет, а затем удалить. Вместо этого вы должны связать удаление идентификатора заказа с аутентификацией или вместо этого присвоить идентификаторам заказа статус (например, «Удалено»), который предотвращает потерю любых данных.

Кроме этого, другой ответ сделает то, что вам нужно. Это не сложно.

Ответ №3:

Вот пример страницы, давайте назовем ее page.php :

 <?
    include "includes/dbconnect.php";
    include "includes/functions.php";

    if ($_POST['delete']){
        deletebooking(intval($_POST['delete']));
        echo "deleted!";
        exit;
    }
?>
<form action="page.php" method="post">
<input type="hidden" name="delete" value="<?=intval($orderID)?>" />
<input type="submit" value="Delete order #<?=intval($orderID)?>" />
</form>
  

Один файл является одновременно формой, которую вы представляете пользователю, и кодом, который выполняет фактическое удаление. Мы передаем идентификатор записи, подлежащей удалению, как скрытое значение формы.

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

1. это работает нормально, но есть одна проблема, поскольку я новичок в php. Я не понимаю, что должно быть в «your_page.php «это просто страница, которую он загружает?

2. это файл, который содержит вашу функцию и второй фрагмент кода в моем сообщении

3. к сожалению, на самом деле это ничего не удаляет. Это мой «your_Page.php «<?php include»includes/dbconnect.php «; включить «includes/functions.php «; если ($_POST[‘delete’]){ deletebooking($OrderID); } эхо «Удалено»?>

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

Ответ №4:

Я бы также предложил добавить перезагрузку в вашу функцию, чтобы идентификатор не оставался в URL после действия удаления.

 $page = 'current.php';

if($_GET['del'])
   {
    deletebooking($orderID,$page);

   }  

function deletebooking($orderID,$page){

    $sql="DELETE FROM bs_reservations WHERE id='".$orderID."'";
    $result=mysql_query($sql) or die("oopsy, error when tryin to delete events 2");
    header('Location: '.$page, true, 303);
}