Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Очиска базы чата, с auto_increment primary key 
:(
    Опции темы
Elfet
  Дата 30.3.2005, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Вот делаю чат. База сообщение работает с auto_increment primary key, тобишь я догружаю в окно чата новые сообщения. А вот как очистить базу? Если удалять более старые (1,2,3,...) То auto_increment primary key вставляет новые сообщения в эти свободные места. Если очищать всё базу по переполнению, то тогда могут некоторые юзеры не увидеть последних сообщений,
а если опрашивать всех всё ли они загрузили - то естесно чат повиснит smile

smile Что делать?


--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 30.3.2005, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



А зачем ID, если достаточнг сортировать по дате.
PM ICQ   Вверх
IZ@TOP
Дата 30.3.2005, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Делать первичным ключем дату сообщения (timestamp) и имя/ид отправившего сообщение юзера.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 31.3.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



делаю так:
Код

  $db->query("delete from chat where time < ".(time()-30)."");

Обновление чата раз в 15 секунд.
PM MAIL Skype   Вверх
Elfet
Дата 1.4.2005, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



я тоже так сначала сделал через time, но мне сказали что это не хорошо и нада через auto_increment primary key. ?.


--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 1.4.2005, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Elfet в дангом случае лучше по времени работать
PM ICQ   Вверх
Reptor
Дата 1.4.2005, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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);

Идея примерно такова.
PM MAIL ICQ   Вверх
Elfet
Дата 4.4.2005, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Reptor, а если переполнится? Да и передовать постоянно большие значения - нехорошо!

Буду время использовать! smile


--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.