$entry = db_fetch_array(db_query("SHOW TABLE STATUS LIKE {node}")); $next_nid = $entry['Auto_increment'];
2 Sinkora: нехороший вариант. Что будет, если N последних нод было удалено? Ну и если что, то же самое (нехороший вариант) достигается через db_last_insert_id().
во всех учебниках по программированию и бд не спроста пишут, что узнать id до вставки в базу невозможно, а если вам это надо, значит у вас некорректный код и его нужно пересмотреть.
Demimurych, tonnal - кстати, да, тоже так думаю.
Когда писал ответ, так и не смог придумать примеров, зачем. Единственное, что пришло в голову: "суеверный" модуль, не позволяющий создавать ноды с id=13 и 666 Но, если подумать, это тоже можно сделать без знания нида наперед.
Извините что долго не открывал тему, решил задачу другим способом.
Задача была в следующем В Ubercart надо было, при создании нового товара, заполнить поле Артикула, с 6 символов.
Условие-значение должно быть уникальным.
Сразу подумал узнать номер ноды (у меня они 4-х значные) и дописать впереди 2 нуля. Кончено был бы плюч, можно было б по Артикулу найти быстро ноду. Вставил время в секундах ( оно с 8 символов, так что урезал 2 симовла).
Комментарии
Как вариант:
Что-то вроде:
$next_nid = $entry['Auto_increment'];
2 Sinkora: нехороший вариант. Что будет, если N последних нод было удалено? Ну и если что, то же самое (нехороший вариант) достигается через db_last_insert_id().
А, ну, да. Я не подумал о том, что ноды удаляются...
тут нужно задать вопрос ЗАЧЕМ?
даже в своей самой больной фантазии не могу придумать зачем наперед знать номер возможной ноды.
во всех учебниках по программированию и бд не спроста пишут, что узнать id до вставки в базу невозможно, а если вам это надо, значит у вас некорректный код и его нужно пересмотреть.
Demimurych, tonnal - кстати, да, тоже так думаю.
Но, если подумать, это тоже можно сделать без знания нида наперед.
Когда писал ответ, так и не смог придумать примеров, зачем. Единственное, что пришло в голову: "суеверный" модуль, не позволяющий создавать ноды с id=13 и 666
Думаю, это нужно для того, что бы использовать ИД ноды при составлении пути для вложенных файлов.
ужас то какой
+1
Ждем - не дождемся, когда ТС поведает на сию тайну...
Извините что долго не открывал тему, решил задачу другим способом.
Задача была в следующем В Ubercart надо было, при создании нового товара, заполнить поле Артикула, с 6 символов.
Условие-значение должно быть уникальным.
Сразу подумал узнать номер ноды (у меня они 4-х значные) и дописать впереди 2 нуля. Кончено был бы плюч, можно было б по Артикулу найти быстро ноду. Вставил время в секундах ( оно с 8 символов, так что урезал 2 симовла).
Можно было просто проверять наличие данного артикула в базе, и выдавать ошибку при необходимости.
А лучше поле Serial юзать или свой токен написать