Тема при создании получает ИД. И в ней должен быть указан ИД первого поста, с которого она начинается. Пост при создании получает Ид. И он уже должен знать ИД созданной темы, в которую он включён. Как разрешить этот каламбур? Что появилось раньше - пост или тема? ЗЫ я бы посмотрел сорцы других форумов, но я нихрена понять в них не могу
Если с мускулем - то mysql_insert_id(); (возвращает ID, сгенерированный для столбца AUTO_INCREMENT предыдущим запросом INSERT)
ой блин, я тока щас допёр что можно создать тему с пустым ИД первого поста, а при создании поста внести в тему его ИД..
2 таблицы. первая топов, вторая постов. В таблице топов только инфа о топе и ничего больше. В таблице постов все о постах + id топа, в котором находится пост. При написании нового поста добавляется запись в таблицу топов, выдирается id топа полученного (как уже говорили $id=mysql_insert_id(); сразу после запроса на INSERT в таблицу топов) и добавляется запись в таблицу постов с id топа. Вот и все.
понял, как ни странно. попробуй прочитать внимательнее. а про mysql_insert_id(); хочу спросить: не может ли так получится что после создания топа, кто-нить запостит пост в другом месте и эта функция вернёт другой ид?
очень маловероятно. Хотя мне трудно судить. В теории транзакций возможна такая ситуация, в которой вернется неверный id в твоем случае. Но если бы это было частым - данный функции бы не существовало. P.S. Функция вернет id только в том случае если есть AUTO_INCREMENT поле в таблице. Вернет, соответственно, его id. mysql_insert_id() это аналог mysql функции LAST_INSERT_ID(), а не разработка php.
1 добавляется запись в таблицу топов 2 выдирается ИД созданного топа (с помощью $id=mysql_insert_id()) 3 и добавляется запись в таблицу постов с id топа. А теперь скажи мне, как ид созданного поста, попадёт в столбец 'first_post' топа? Т.е. как топ узнает, с какого поста он начинается?