Задать вопрос
@Iossarian

Как настроить кнопку для удаления записи из БД?

Суть вопроса: нужно напить кнопку для удаления записи из БД. Имеем форму:

<form class="lot-item__form" action="../lot.php?id=<?=$id;?>" method="post">
            <?php $classname = isset($error['com']) ? "--invalid" : "";?>
          <p class="lot-item__form-item <?=$classname;?>">
            <label for="com">Ваш комментарий</label>
              <textarea name="com" id="com" cols="33" rows="8"></textarea>
              <button type="submit" class="button">Комментировать</button>
              <button type="submit" name="del" class="button">Удалить пост</button>
          </p>
        </form>

Это форма отправки комментариев к посту в блоге. В этой же форме прикрутил кнопку удаления записи из БД. Настройки позволят удалить пост только автору, но вот как верно реализовать логику? Пробовал так:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

if (isset($_POST['del'])) {
    $sql = 'DELETE * FROM post WHERE id = "' .$id. '";';
    $res = mysqli_query ($con, $sql);
    }
}

Подскажите, в чем ошибки и как сделать правильно? Спасибо.
  • Вопрос задан
  • 1537 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
@ponaehal
Не силен в PHP, но вдруг подумалось что будет не айс если какой-нибудь доброжелатель в качестве id вам передаст строку вида: 1235" + "or 1=1" + ". ИМХО, надо бы как то залатать...
Ответ написан
Комментировать
@shushpanio
shushpanio
Плохая идея что-то полностью удалять.
Быть может логичнее сделать статью не активной? Т.Е. по нажатию кнопки в какой-то табличке формата
ID_статьи | Active

для статьи поставится значение например 0 и статья перестанет отображаться в ленте, но при этом сохранится в БД и в случае чего ее всегда можно будет восстановить
Ответ написан
@Iossarian Автор вопроса
Проблема была во внешних ключах. Комментарий ссылались на запись и потому запись нельзя было удалить без установки внешнего ключа при удалении CASCADE
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽