Номер node до ее создания

Главные вкладки

Комментарии

Аватар пользователя graker graker 28 мая 2010 в 16:17

Что-то вроде:

$entry = db_fetch_array(db_query("SHOW TABLE STATUS LIKE {node}"));
$next_nid = $entry['Auto_increment'];

2 Sinkora: нехороший вариант. Что будет, если N последних нод было удалено? Ну и если что, то же самое (нехороший вариант) достигается через db_last_insert_id().

Аватар пользователя Dеmimurych Dеmimurych 28 мая 2010 в 17:31

тут нужно задать вопрос ЗАЧЕМ?

даже в своей самой больной фантазии не могу придумать зачем наперед знать номер возможной ноды.

Аватар пользователя tonnal tonnal 28 мая 2010 в 17:39

во всех учебниках по программированию и бд не спроста пишут, что узнать id до вставки в базу невозможно, а если вам это надо, значит у вас некорректный код и его нужно пересмотреть.

Аватар пользователя graker graker 28 мая 2010 в 17:54

Demimurych, tonnal - кстати, да, тоже так думаю.
Когда писал ответ, так и не смог придумать примеров, зачем. Единственное, что пришло в голову: "суеверный" модуль, не позволяющий создавать ноды с id=13 и 666 Smile Но, если подумать, это тоже можно сделать без знания нида наперед.

Аватар пользователя Ch Ch 28 мая 2010 в 20:08

Думаю, это нужно для того, что бы использовать ИД ноды при составлении пути для вложенных файлов.

Аватар пользователя Dеmimurych Dеmimurych 28 мая 2010 в 20:25

"Ch" wrote:
Думаю, это нужно для того, что бы использовать ИД ноды при составлении пути для вложенных файлов.

ужас то какой

Аватар пользователя Jackinua Jackinua 1 июня 2010 в 22:26

Извините что долго не открывал тему, решил задачу другим способом.

Задача была в следующем В Ubercart надо было, при создании нового товара, заполнить поле Артикула, с 6 символов.
Условие-значение должно быть уникальным.
Сразу подумал узнать номер ноды (у меня они 4-х значные) и дописать впереди 2 нуля. Кончено был бы плюч, можно было б по Артикулу найти быстро ноду. Вставил время в секундах ( оно с 8 символов, так что урезал 2 симовла).

Аватар пользователя Ch Ch 2 июня 2010 в 16:34

Можно было просто проверять наличие данного артикула в базе, и выдавать ошибку при необходимости.