|
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Поясняю свое недоумение:
1. Если нам нужно узнать количество тем -- у нас есть "select count(*) ...". 2. Если нам нужно получить список всех тем -- у нас есть "select * ...". Так что по-прежнему в недоумении относительно того, почему у тебя падало даже до использования count(*).
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
Регистрация: Feb 2002
Адрес: Саратов
Сообщений: 93
|
Хорошо, попытаюсь прояснить ситуацию.
В базе 3 таблицы, относящиеся к форуму: subjects (содержит названия тем и их id); profiles (содержит инфу о людях) и messages (содержит сообщения, их id - совпадающие с id соответствующей темы, даты отправки сообщений и автора сообщения). Открывая форум, скрипт смотрит max(id) из таблицы subjects, затем из таблицы messages для каждого id находит последнее сообщение, его автора и дату отправки.
__________________
Funciona situando las manos bajo el secador |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
Цитата:
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
funciona situando las manos encima del teclado
|
|
|||||
Регистрация: Feb 2002
Адрес: Саратов
Сообщений: 93
|
Сорри за долгое молчание.
Опишу весь алгоритм, опуская мелкие подробности. Юзер, желая начать новую тему, заполняет форму, в которой указывает свой логин, тему и сообщение. Далее тема заносится в таблицу subjects, где ей присваивается id(auto_increment). Далее select max(id) from subjects - и мы знаем номер этой темы. После этого в таблицу messages заносятся логин, дата, сообщение и этот самый id (но уже не auto_increment, а просто). Теперь другие юзеры наполняют эту тему сообщениями. Они (сообщения) тоже заносятся в таблицу messages, но id у них у всех одинаковый - это id данной темы. Далее начинаем просмотр форума. Снова select max(id) from subjects (можно использовать COUNT - сути не меняет). Мы узнали число тем в нашем форуме (допустим 5). Организуем цикл while ($x<=5). В этом цикле выбираем название темы из таблицы subjects, логины авторов и даты первого и последнего сообщения каждой темы - из таблицы messages where id=$x. В этом же цикле всю эту информацию выводим на экран. Последний этап - юзер кликает понравившуюся тему. Ссылка отправляет нас на файл-обработчик и передает ему переменную id (номер темы). По этому номеру мы восстанавливаем название темы из таблицы subjects и выбираем все сообщения с этим номером id из таблицы messages (соответственно и логины и даты), сортируя их по датам. Выводим на экран. Вроде бы все. Надеюсь теперь все стало ясно.
__________________
Funciona situando las manos bajo el secador |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
Не надо извращаться там, где есть ШТАТНОЕ решение. Цитата:
Так что ни max, ни count здесь вообще не нужны.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
Регистрация: Feb 2002
Адрес: Саратов
Сообщений: 93
|
Цитата:
А мы не можем блокировать БД на время между insert и select, в ASP, например, есть такая возможность ? Кстати, а что за ШТАТНОЕ решение ? Цитата:
__________________
Funciona situando las manos bajo el secador |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
Цитата:
2. Ищем раздел "LXIII. MySQL Functions". 3. Читаем список функция, обращая внимание на комментарии. Эффект достигается в течении 3 минут. Цитата:
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ Последний раз редактировалось Crazy; 20.12.2003 в 17:43. |
|
|||||
Регистрация: Feb 2002
Адрес: Саратов
Сообщений: 93
|
Цитата:
По поводу Штатного решения: $link = mysql_connect ('host', 'user', 'pass'); $res=mysql($bd,"insert into subjects values ('','$subject')"); $id = last_insert_id($link); где $subject - название темы. Что ли так ? И необходимо ли указывать link_identifier, чтобы возвратился id именно этого пользователя, или необязательно ?
__________________
Funciona situando las manos bajo el secador |
|
|||||
Регистрация: Feb 2002
Адрес: Саратов
Сообщений: 93
|
Crazy, please !
:-)
__________________
Funciona situando las manos bajo el secador |
Часовой пояс GMT +4, время: 18:41. |
|
« Предыдущая тема | Следующая тема » |
|
|