Функция удаления SQL не работает в таблице

У меня есть три файла, соединяющихся друг с другом, моя проблема в том, что моя функция удаления не работает. Я хотел бы знать, чего не хватает в моей «общедоступной функции Delete_Lease ($ db) {», показанные коды показаны ниже. По сути, я использую для каждого для отображения таблицы, редактирование работает без проблем, но удаление просто остается на той же странице и не имеет никакого эффекта.

Имя таблицы: for_lease

Значения: арендный_идент, арендный_тип, арендное_имя, арендный_адрес, арендная_цена, арендное_условие, арендное_описание, избранное_фото, дата создания

Функция удаления SQL не работает в таблицеfor_lease.php

<?php
  session_start();
  require_once('for_lease.vc.php');
?>

 <?php foreach($lstProperty as $rowProperty) { ?>
       <tr align = "center">
         <td>
          <a href = "for_lease_edit.php?i=<?php echo($rowProperty['leaseid']); ?>"><input type = "submit" class = "btn bg-color-blue color-white form-control" name = "edit" value = "EDIT"></a>
         </td>

         <td>
           <?php
             echo($rowProperty['lease_name']);
           ?>
         </td>

         <td>
           <?php
             echo($rowProperty['lease_address']);
           ?>
         </td>

         <td>
           <?php
             echo($rowProperty['lease_type']);
           ?>
         </td>

         <td>
           <?php
             echo 'PHP'.' '.number_format(($rowProperty['lease_price']));
           ?>
         </td>

         <td>
           <?php
             echo($rowProperty['lease_condition']);
           ?>
         </td>

         <td>
           <?php
             echo( date("Y-m-d", strtotime($rowProperty['createddate']) ));
           ?>
         </td>

         <td>
           <a href = "for_lease.php?delete=<?php echo($rowProperty['leaseid']); ?>" onclick = "return confirm('Are you sure?');"><input type = "submit" class = "btn bg-color-red color-white form-control" name = "delete" value = "DELETE"></a>
         </td>
       </tr>
 <?php } ?>

for_lease.vc.php

<?php
  $routePath = "../";

  require_once($routePath . "_config/db.php");
    $dbConfig = new config_db();
    $db = $dbConfig->init();

  require_once($routePath . "_mc/Property.mc.php");

  $mcProperty = new Property_MC();

  $lstProperty = $mcProperty->SelectObj_ByLeaseId($db);

  if (isset($_GET['delete'])){
    $rowProperty = $mcProperty->Delete_Lease($db);
  }
?>

Недвижимость.mc.php

<?php
Class Property_MC {

  public function SelectObj_ByLeaseId($db) {
  $stmt = $db->prepare(
    " SELECT leaseid, lease_type, lease_name, lease_address, lease_price, lease_condition, lease_description, createddate
      FROM for_lease"
  );

  $stmt->execute();
  $row = $stmt->fetchAll(PDO::FETCH_ASSOC);

  return $row;
  }

  public function Delete_Lease($db) {
  $stmt = $db->prepare(
    " DELETE * FROM
        for_lease
      WHERE
        leaseid = :leaseid "
  );
  }

} ?>
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
46
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы не выполняете оператор sql, вы только готовите его. Кроме того, в зависимости от того, как настроен ваш код, вам нужно будет передать leaseid вашей функции удаления.

Попробуй это.

for_lease.vc.php

<?php
  $routePath = "../";

  require_once($routePath . "_config/db.php");
    $dbConfig = new config_db();
    $db = $dbConfig->init();

  require_once($routePath . "_mc/Property.mc.php");

  $mcProperty = new Property_MC();

  $lstProperty = $mcProperty->SelectObj_ByLeaseId($db);

  if (isset($_GET['delete'])){
    $rowProperty = $mcProperty->Delete_Lease($db, $_GET['delete']);
  }
?>

Недвижимость.mc.php

 public function Delete_Lease($db, $leaseid) {
  $stmt = $db->prepare(
    " DELETE FROM
        for_lease
      WHERE
        leaseid = :leaseid "
  );

  $stmt->execute([':leaseid' => $leaseid]);  

  }

нет никакого эффекта после попытки этого примера

Button Press 27.05.2019 03:15
Ответ принят как подходящий

Delete_Lease отсутствует привязка и выполнение, а также идентификатор аренды, который нужно удалить. SQL для удаления не нуждается в "*".

Недвижимость.mc.php

public function Delete_Lease($db, $leaseid) {
    $stmt = $db->prepare(
        "DELETE FROM
        for_lease
        WHERE
        leaseid = :leaseid "
        );  
    $stmt->execute(['leaseid' => $leaseid]);
}

for_lease.vc.php

if (isset($_GET['delete'])){
    $rowProperty = $mcProperty->Delete_Lease($db, $_GET['leaseid']);
}

исправить кнопку удаления, которая перезаписывает идентификатор удаления в for_lease.php

<td>
    <a href = "for_lease.php?leaseid=<?php echo($rowProperty['leaseid']); ?>" onclick = "return confirm('Are you sure?');"><input type = "submit" class = "btn bg-color-red color-white form-control" name = "delete" value = "DELETE"></a>
</td>

Обновите мой вопрос, я получаю неопознанную переменную, если пытаюсь добавить "leaseid"

Button Press 27.05.2019 00:13

Вам нужно передать значение - попробуйте это. alos кнопка удаления была перезаписана значением удаления при подтверждении.

Alo 27.05.2019 00:26

спасибо за редактирование, некоторые настройки с этим ответом помогли :) я понял, что мне нужен $_GET

Button Press 27.05.2019 10:06

Другие вопросы по теме