ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Создание темы и поста в самописном форуме
  #1  
Старый 27.04.2006, 14:22
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию Создание темы и поста в самописном форуме

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

Как разрешить этот каламбур? Что появилось раньше - пост или тема?

ЗЫ я бы посмотрел сорцы других форумов, но я нихрена понять в них не могу
 
Ответить с цитированием

  #2  
Старый 27.04.2006, 15:11
Аватар для ferryman
ferryman
Познающий
Регистрация: 13.02.2006
Сообщений: 88
Провел на форуме:
304371

Репутация: 16
Отправить сообщение для ferryman с помощью ICQ
По умолчанию

Если с мускулем - то mysql_insert_id(); (возвращает ID, сгенерированный для столбца AUTO_INCREMENT предыдущим запросом INSERT)
 
Ответить с цитированием

  #3  
Старый 27.04.2006, 15:56
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

ой блин, я тока щас допёр что можно создать тему с пустым ИД первого поста, а при создании поста внести в тему его ИД..
 
Ответить с цитированием

  #4  
Старый 27.04.2006, 17:13
Аватар для ferryman
ferryman
Познающий
Регистрация: 13.02.2006
Сообщений: 88
Провел на форуме:
304371

Репутация: 16
Отправить сообщение для ferryman с помощью ICQ
По умолчанию

Цитата:
Сообщение от Дикс  
ой блин, я тока щас допёр что можно создать тему с пустым ИД первого поста, а при создании поста внести в тему его ИД..
ты хоть понял чего сказал?

Цитата:
возвращает ID, сгенерированный для столбца AUTO_INCREMENT предыдущим запросом INSERT
внимательно читаем mysql_isert_id()
 
Ответить с цитированием

  #5  
Старый 27.04.2006, 17:42
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

2 таблицы.
первая топов, вторая постов.
В таблице топов только инфа о топе и ничего больше.
В таблице постов все о постах + id топа, в котором находится пост.
При написании нового поста добавляется запись в таблицу топов, выдирается id топа полученного (как уже говорили $id=mysql_insert_id(); сразу после запроса на INSERT в таблицу топов) и добавляется запись в таблицу постов с id топа. Вот и все.
 
Ответить с цитированием

  #6  
Старый 27.04.2006, 18:01
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

Цитата:
ты хоть понял чего сказал?
понял, как ни странно. попробуй прочитать внимательнее.

а про mysql_insert_id(); хочу спросить: не может ли так получится что после создания топа, кто-нить запостит пост в другом месте и эта функция вернёт другой ид?
 
Ответить с цитированием

  #7  
Старый 27.04.2006, 18:21
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

Цитата:
а про mysql_insert_id(); хочу спросить: не может ли так получится что после создания топа, кто-нить запостит пост в другом месте и эта функция вернёт другой ид?
очень маловероятно. Хотя мне трудно судить. В теории транзакций возможна такая ситуация, в которой вернется неверный id в твоем случае. Но если бы это было частым - данный функции бы не существовало.

P.S. Функция вернет id только в том случае если есть AUTO_INCREMENT поле в таблице. Вернет, соответственно, его id. mysql_insert_id() это аналог mysql функции LAST_INSERT_ID(), а не разработка php.
 
Ответить с цитированием

  #8  
Старый 28.04.2006, 06:58
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

спасибо большое, так и сделал, всё работает.
 
Ответить с цитированием

  #9  
Старый 28.04.2006, 10:19
Аватар для ferryman
ferryman
Познающий
Регистрация: 13.02.2006
Сообщений: 88
Провел на форуме:
304371

Репутация: 16
Отправить сообщение для ferryman с помощью ICQ
По умолчанию

Цитата:
создать тему с пустым ИД
выгон..

Цитата:
Сообщение от Дикс  
а про mysql_insert_id(); хочу спросить: не может ли так получится что после создания топа, кто-нить запостит пост в другом месте и эта функция вернёт другой ид?
0.0000000000000001%

Последний раз редактировалось ferryman; 28.04.2006 в 10:26..
 
Ответить с цитированием

  #10  
Старый 28.04.2006, 10:45
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

Цитата:
выгон..
в смысле?
как ты вставишь туда ИД ещё не созданного поста?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
html в самописном форуме. Возможные уязвимости ? Dro Форумы 1 22.09.2005 14:37
Создание чата! Болталка 35 23.02.2003 19:54
Создание чата! Чаты 0 27.01.2003 16:07



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ