Ищу сниппет (php, sql) для удаления нод определенного вида
Прислано: Valeratal
сб, 06/09/2008 - 13:06
Есть ли такой?
(а то 8к нод через админу уж очень долго)
- Valeratal's blog
- Для комментирования войдите или зарегистрируйтесь
критерии ф студию
- Для комментирования войдите или зарегистрируйтесь
<?php
$q = db_query("SELECT nid FROM {node} WHERE type = '%s'", "page");
while($r = db_fetch_object($q))node_delete($r->nid);
?>Вместо "page" поставь нужный тебе тип.
- Для комментирования войдите или зарегистрируйтесь
спасибо, нашел
<?php
require_once './includes/bootstrap.inc';drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$type="nodetype";
$query= db_query("SELECT nid FROM {node} AS n WHERE type = '%s'",$type);
while ($row = db_fetch_object($query)) { print_r($row); node_delete($row->nid);
}
?>nodetype - требуемый вид ноды
Запускал у себя. Удаляет
- Для комментирования войдите или зарегистрируйтесь
Это полезный сниппет - подшил и у себя сохранил.
Решение было сохранено на сайте DrupalCookBook.ru:
Удалить документы определенного типа материалов.
Авторы, предложившие решения, также указаны в сохранённой статье.
- Для комментирования войдите или зарегистрируйтесь
спасибо, нашел
nodetype - требуемый вид ноды
Запускал у себя. Удаляет
Дык, это тот же код, который привел я, только заточенный под запуск не из Друпала, а из произвольного файла.
- Для комментирования войдите или зарегистрируйтесь
Ну да, я примерно понял, что код один и тот же - запрос один и тот же
Просто не очень хорошо понимаю php
В дополнение
С первого раза сниппет не удаляет все (видимо зависит от настроек сервера - не хватате времени) (примерно удаляет 10 страниц (если смотреть по содержимому в админке)
Запускал несколько раз
- Для комментирования войдите или зарегистрируйтесь
Добавьте к запросу LIMIT N, где N - количество записей. Поиграйте с этим значением, чтобы в таймаут не попадать.
- Для комментирования войдите или зарегистрируйтесь






Комментарии