$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 юзать или свой токен написать