На моем сайте работающем на пятом друпале был такой запрос насколько я понял он возвращал nid последней созданной ноды
$node_before = db_result(db_query("SELECT id FROM {sequences} WHERE name = '{node}_nid'", db_prefix_tables('{node}_nid')));
В 6 таблицы sequences уже нет как получить нужный nid?
погуглив в том числе и на этом сайте
Я подумал что что-то типа такого $node_beforе = db_last_insert_id('node', 'nid'); должно работать однако это возвращает "0"
Что я делаю не так ?
Комментарии
вставить запись надо раньше чем получить ее nid, то есть ее сначала вставляют потом получают id, может в этом дело?
В этом наверно, только у меня задача стоит, что нужно получить просто значения без вставки ноды.
Думал взять что типа максимальное значение nid что есть в таблице тоже не подходит если например создать ноду с номером 1001, а потом удалить ее максимальное значение будет 1000 а счетчик auto_increment 1001.
А зачем вам это нужно?
У меня есть модуль который импортирует из xls делали на заказ
так в пятерке там так количество импортируемых нод считали
сделают запрос до импорта, сделают запрос после импорта,
вычли одно из другого получили разницу
Как вариант можно вставит тестовую запись, получить id через функцию db_last_insert_id, Удалить запись и проинкреминтирвать id
получить nid при создании ноды можно через hook_nodeapi при $op= "insert";
SELECT MAX(nid) last_nid FROM {node}
Спасибо, но это в некоторых случаях не правильно работает
Если взять последнии внесеные ноды удалить.
Пример у вас есть ноды с NID -1000 -1001 -1002 -1003 -1004
удаляем ноды -1001 -1002 -1003 -1004
теперь если сделать такой запрос, он вернет 1000
а новая нода будет иметь NID 1005
Да извращённое желание какое-то, говорящее как минимум о неправильном подходе к написанию модуля