Удаление каментов через PhpMyAdmin

Подскажите, пожалуйста, как можно удалить каменты через PhpMyAdmin? Каким запросом сразу сделать поиск и удаление если известен номер топика? Я зашел в таблицу prefix_comment, сделал поиск по target_id, нашлось 1200 каментов, выделяю все и жму «удалить» там где строка С отмеченными:. После этого появляются все эти каменты на отдельной странице, прокручиваю вниз, жму Сохранить и вернуться на предыдущую страницу. Опять делаю поиск и вижу, что все каменты на месте.

18 комментариев

avatar
жму Сохранить
что-то не та кнопка)
полный запрос приведите. там ещё есть target_type
avatar
target_type — topic
В общем странная фигня: когда выводятся стандартные 30 строк удаление идет нормально. А когда вывожу все 1200 каментов, то вместо удаления перекидывает на редактирование. В HTML вот такая картина:
<button class="mult_submit" type="submit" name="submit_mult" value="Изменить" title="Изменить">
<button class="mult_submit" type="submit" name="submit_mult" value="Удалить" title="Удалить">
<button class="mult_submit" type="submit" name="submit_mult" value="Экспорт" title="Экспорт">

Странно, что они все одинаковые.
avatar
Открыл дебагер, удалил в HTML кнопки Изменить и Экспорт и все равно открылась страница редактирования)
avatar
Опытным путем выяснил, что если выводить больше 120 каментов, то вместо удаления включается редактирование. То есть больше 120 каментов за раз не удалить. Может быть именно в этом причина, почему после удаления топика в БД не стерлись каменты.
avatar
Некоторые каменты не удаляются и пишет такую ошибку:
#1451 - Cannot delete or update a parent row: a foreign key constraint fails (`ololo/prefix_comment`, CONSTRAINT `prefix_topic_comment_fk` FOREIGN KEY (`comment_pid`) REFERENCES `prefix_comment` (`comment_id`) ON DELETE CASCADE ON UPDATE CASCADE)
avatar
удаление комментариев — очень таки сложная вещь.

а почему вы удаляете за конкретным ид топика, а не сам топик?

такое сообщение — это нормально т.к. комменты завязаны в связке «родитель-дочерние» и начинать нужно с самых дальних комментариев (у которых comment_pid нулл). либо отключить проверку внешних связей при удалении.
avatar
Топик удалил через админку, но каменты не удалились и на сайте посыпались ошибки. Сложно их удалять исключительно для LS, потому что только в нем такие проблемы.
avatar
А можете подсказать как мне теперь быть? Каментов очень много, поэтому удалять их с соблюдением иерархии — нереально.
avatar
не пользоваться непонятной админкой. я выше написал:
начинать нужно с самых дальних комментариев (у которых comment_pid нулл). либо отключить проверку внешних связей при удалении.
avatar
aceAdminPanel — непонятная админка?) Вроде она практически единственная админка, так как из коробки только редактирование конфига и всё. Как отключить проверку внешних связей? Можно как-то за раз потереть все 1200 каментов, а не маленькими порциями?
avatar
aceAdminPanel — непонятная админка?)
да, именно. Я из-за неё видел десятки (не преувеличение) разных проблем на сайтах пользователей, когда отключаешь её — все стает на свои места. Из-за не качественного кода внутри я не стал ковырять что же в ней не так.
Вроде она практически единственная админка
Единственная не значит хорошая, а то, что она криво написана — знают почти все пользователи, разработчики так точно (знаю таких, которые за голову берутся при одном напоминании о ней).
Как отключить проверку внешних связей?
погуглить?
Можно как-то за раз потереть все 1200 каментов, а не маленькими порциями?
можно.
avatar
погуглить?
можно.
Я благодарен, что Вы уделяете мне время, но можно подробнее? Проверка внешних связей отключается только в конфиге phpmyadmin?
avatar
Этот камент очень помог) Удалил сначала null, потом остальные. Ошибка в шаблоне больше не выводится. Надеюсь обновится получиться теперь.
avatar
готовый бизнес здесь www.allpbspb.ru/
avatar
У вас в шаблоне в результате ошибка? Сделайте просто проверку в шаблонах, по типу если есть объект, то комменты выводятся, а если нет, то не выводятся.
avatar
У меня и в шаблоне ошибка и подозреваю, что 0.5.1 не могу обновить до 1.0.3 по этой же причине. Как сделать такую проверку?
avatar
Не, ну обновить вам это по прежнему не поможет, а проверка… Что-то из серии, это навскидку, я не помню какая там переменная, но логику понять можно:
{if $Topic}
Тут вывод топика, комментария и всё что с этим связано, т.е. старый код шаблона
{/if}
avatar
После обновления вылезает ошибка:
Warning: opendir(/config/modules/): failed to open dir: No such file or directory in /var/www/domen.ru/config/loader.php on line 35 Warning: opendir(/include/): failed to open dir: No such file or directory in /var/www/domen.ru/config/loader.php on line 66 Warning: opendir(/include/): failed to open dir: No such file or directory in /var/www/domen.ru/config/loader.php on line 83 Warning: opendir(/config/modules/): failed to open dir: No such file or directory in /var/www/domen.ru/config/loader.php on line 101 Warning: require_once(/classes/Engine.class.php): failed to open stream: No such file or directory in /var/www/domen.ru/index.php on line 28 Fatal error: require_once(): Failed opening required '/classes/Engine.class.php' (include_path='.:/usr/share/php:/usr/share/pear:/var/www/domen.ru') in /var/www/domen.ru/index.php on line 28
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.