0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 241 Просмотров
*

Biss

  • Давно я тут
  • 994
  • 101 / 0
Условие удаления
« : 14.10.2022, 10:01:53 »
Добрый день. Помогите правильно написать, у меня не получается. Код должен удалить отмеченные строки или строку при условии что нет вложенностей
Код
			if (isset($_POST['delete']))
{
$del_cat = $_POST['checkbox'];
foreach ($del_cat as $del_parent) {
$query = $pdo->query("SELECT `sub_cat_parent` FROM `e_sub_cat` WHERE `sub_cat_parent`='$del_parent'");
$search= $query->fetch(PDO::FETCH_BOTH);

if ($search != '')
{
echo "<div class='alert alert-danger' role='alert'><h5>Видаляю...</h5></div>";
echo "<br /><img class='img_load' src='".$dom."/karat/img/load.gif'>";
$_SESSION['message'] = "<div class='alert alert-danger' role='alert'>Категорія не пуста!</div>";
header("Refresh:1;url=".$dom."/karat/stock/cat_index.php");
exit();
}
if ($search == '')
{
foreach ($del_cat as $del_id) {
$query = $pdo->query("DELETE FROM `e_sub_cat` WHERE `id` = '$del_id'");
}
echo "<div class='alert alert-danger' role='alert'><h5>Видаляю...</h5></div>";
echo "<br /><img class='img_load' src='".$dom."/karat/img/load.gif'>";
$_SESSION['message'] = " <div class='alert alert-success' role='alert'>Видалено!</div>";
header("Refresh:1;url=".$dom."/karat/stock/cat_index.php");
exit();
}
}
}
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Условие удаления
« Ответ #1 : 14.10.2022, 11:43:44 »
Если без сообщений:
Код
"DELETE FROM `e_sub_cat` WHERE `id` IN ('".implode(',', $del_cat."') AND `sub_cat_parent` = 0";
Только $del_cat через фильтр пропустите.

Если надо сообщение, что было не удалено и почему, аналогично в SELECT получить id/имя не удаленных категорий. `sub_cat_parent` > 0. И в очередь сообщений передать нужный текст.
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

Biss

  • Давно я тут
  • 994
  • 101 / 0
Re: Условие удаления
« Ответ #2 : 14.10.2022, 12:15:34 »
Код
Только $del_cat через фильтр пропустите.
цыкл? не совсем понял
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Условие удаления
« Ответ #3 : 14.10.2022, 13:21:06 »
Посмотрите начало любого метода какого-либо контроллера, получающего массив ids.
Код
// Make sure the item ids are integers
$cid = ArrayHelper::toInteger($cid);
Например, delete() в AdminController.
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

Biss

  • Давно я тут
  • 994
  • 101 / 0
Re: Условие удаления
« Ответ #4 : 14.10.2022, 13:57:05 »
Это самописный код, без Joomla
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Условие удаления
« Ответ #5 : 14.10.2022, 15:22:33 »
Это самописный код, без Joomla
А Joomla - тоже самописный код, на php. Зайдите в toInteger и посмотрите, что там.
Код
$cid = ArrayHelper::toInteger($cid);
соответствует
Код
if (\is_array($cid)) {
    $cid = array_map('intval', $cid);
} else {
    $cid = array();
}
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться