Форум русской поддержки Joomla!® CMS
16.08.2017, 21:40:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Основной курс по Joomla
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Почему строки не удалились из базы данных?

 (Прочитано 118 раз)
0 Пользователей и 1 Гость смотрят эту тему.
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1280


желаю вам счастья


« : 22.06.2017, 17:00:28 »

Здравствуйте!

Продолжаю писать компонент, в котором есть представление "delete", кнопка тулбара "Удалить" которого формируется кодом:
Код:
JToolBarHelper::deleteList();
в файле \admin\views\delete\view.html.php прикреплённого архива.

Когда, будучи в админке на этом виде, я выделяю какие-то добытые из базы данных отображенные строки и затем жму эту кнопку "Удалить", все строки остаются в базе данных, о чем говорит обновление страницы(по умолчанию происходит редирект на это же представление).

Скажите, пожалуйста, какого кода не хватает, чтобы отмеченные строки удалялись?

* com_vm3delpics.zip (15.99 Кб - загружено 1 раз.)
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +376/-4
Offline Offline

Пол: Мужской
Сообщений: 2822



« Ответ #1 : 22.06.2017, 18:40:19 »

не хватает всего кода и понимания как всё работает!
Обычно строится два вида, один для записи второй списка этих записей!
Модель списка наследуется от JModelList в которой вся логика для построения списка, сортировок и т.д.
А модель для записи наследуется от JModelAdmin, вот в JModelAdmin и существуют методы для удаления записи, в JModelList ничего этого нет!
по этому вам нужно в модели вам определить метод delete...
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1280


желаю вам счастья


« Ответ #2 : 22.06.2017, 18:47:31 »

по этому вам нужно в модели вам определить метод delete...
Спасибо! Создам.
А как в этом методе модели получить список тех записей, что были отмечены на удаление?
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +376/-4
Offline Offline

Пол: Мужской
Сообщений: 2822



« Ответ #3 : 22.06.2017, 18:51:58 »

А как в этом методе модели получить список тех записей, что были отмечены на удаление?

Вообще то имелось ввиду что вам нужно скопировать метод delete из JModelAdmin  в вашу модель..
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1280


желаю вам счастья


« Ответ #4 : 28.06.2017, 11:17:54 »

Доброе утро!

Пытаюсь создать SQL-запрос вида:
Цитировать
DELETE m FROM `#__virtuemart_medias` AS `m` WHERE `file_type` = 'product' AND NOT EXISTS(SELECT virtuemart_media_id FROM #__virtuemart_product_medias WHERE virtuemart_media_id = m.virtuemart_media_id )
с помощью php-кода:
Код:
$conditions = array(
$db->quoteName('file_type'). ' = \'product\'',
'NOT EXISTS(SELECT virtuemart_media_id FROM #__virtuemart_product_medias WHERE virtuemart_media_id = m.virtuemart_media_id )'
);
$query->delete($db->quoteName('#__virtuemart_medias', 'm'));
$query->where($conditions);
но он создает запрос без буквы m после DELETE, и запрос не выполняется в силу синтаксической ошибки.
Скажите пожалуйста, как надо изменить код, чтобы построить запрос правильно?

Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Online Online

Сообщений: 9954



« Ответ #5 : 28.06.2017, 11:24:46 »

Код:
$db->setQuery("DELETE m FROM `#__virtuemart_medias` AS `m` WHERE `file_type` = 'product' AND NOT EXISTS(SELECT virtuemart_media_id FROM #__virtuemart_product_medias WHERE virtuemart_media_id = m.virtuemart_media_id )");
$db->execute();
Azn
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1280


желаю вам счастья


« Ответ #6 : 28.06.2017, 11:26:48 »

Код:
$db->setQuery("DELETE m FROM `#__virtuemart_medias` AS `m` WHERE `file_type` = 'product' AND NOT EXISTS(SELECT virtuemart_media_id FROM #__virtuemart_product_medias WHERE virtuemart_media_id = m.virtuemart_media_id )");
$db->execute();
Azn
Azn единственно верный выход?
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet