![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Вот делаю чат. База сообщение работает с auto_increment primary key, тобишь я догружаю в окно чата новые сообщения. А вот как очистить базу? Если удалять более старые (1,2,3,...) То auto_increment primary key вставляет новые сообщения в эти свободные места. Если очищать всё базу по переполнению, то тогда могут некоторые юзеры не увидеть последних сообщений,
а если опрашивать всех всё ли они загрузили - то естесно чат повиснит |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А зачем ID, если достаточнг сортировать по дате.
|
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Делать первичным ключем дату сообщения (timestamp) и имя/ид отправившего сообщение юзера.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 24 Всего: 55 |
делаю так:
Обновление чата раз в 15 секунд. |
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
я тоже так сначала сделал через time, но мне сказали что это не хорошо и нада через auto_increment primary key. ?.
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Elfet в дангом случае лучше по времени работать
|
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 0 Всего: 0 |
Попробуй зделать таким образом. Например поставь максимум сообщений 30 (или сколько захочеш) и когда у тебя прийдёт 31 удаляй первое и всё, а когда 32 - 2-ое Таким образом в БД у тебя всегда будет нормальное к-тво сообщений вот к примеру так:
if ($id > 30) { $sql = "SELECT `id` FROM `$tbl_mess` ORDER BY `id` ASC;"; $rows = mysql_fetch_array(mysql_query($sql)); $id_for_del = $rows['id']; $sql = "DELETE FROM `$tbl_mess` WHERE `id` = '$id_for_del' AND `room`='$room';"; mysql_query($sql); } $sql = "INSERT INTO `$tbl_mess` (`mess`) VALUES ('$mess');"; mysql_query($sql); Идея примерно такова. |
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Reptor, а если переполнится? Да и передовать постоянно большие значения - нехорошо!
Буду время использовать! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |