Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не могу построить запрос к базе. Ума не хватает.
 
 автор: klassgame   (13.04.2007 в 14:38)   письмо автору
 
 

Пишу чат для он-лайн игры. По моему мнению любой чат должен иметь возможность отпраки личных сообщений, т.е. видимых только адресату. Вот код из инсталлятора таблиц игры

CREATE TABLE chat(
id_message INT NOT NULL AUTO_INCREMENT,
id_user INT NOT NULL,
time TIME NOT NULL DEFAULT "00:00:00",
type_message ENUM ("us", "mod", "ad", "bot", "sys") DEFAULT "us",
message TEXT NOT NULL,
for_user TEXT,
hide ENUM ("hide", "show"),
PRIMARY KEY (id_message)
TYPE=MyISAM;

Необходимо одним запросом получить сообщения отправленные всем, отправленные любому из юзеров, но видимые и сообщения отправленные только пользователю.
P.S. Там поле есть type_message - это для цветового выделения сообщений от админов, модераторов, ботов и системных сообщений. Не обращайте внимания.

   
 
 автор: Trianon   (13.04.2007 в 14:52)   письмо автору
 
   для: klassgame   (13.04.2007 в 14:38)
 


$current_user = intval($_SESSION['used_id']);
$sql = "SELECT * FROM chat WHERE for_user IS NULL OR  for_user =$current_user OR hide  = 'show' ";

если конечно for_user именно так работает.
Как задаются сообщения всем?

   
 
 автор: klassgame   (13.04.2007 в 15:29)   письмо автору
 
   для: Trianon   (13.04.2007 в 14:52)
 

в форме отправки сообщения два поля "кому" и само сообщение, если поле "кому" пустое, то то в скрипт добавляет в for_user значение "ALL". Т.е. for_user работает не от нулевого значения, а от "ALL". Спасибо. Я сейчас попробую подправить Ваш пример и проверить.

   
 
 автор: Trianon   (13.04.2007 в 15:35)   письмо автору
 
   для: klassgame   (13.04.2007 в 15:29)
 

Угу . А потом зарегистрируется посетитель ALL и станет жаловаться, что приватные реплики в его адрес всем видны.

   
 
 автор: mr Bin   (13.04.2007 в 15:49)   письмо автору
 
   для: Trianon   (13.04.2007 в 15:35)
 

Ну можно запретить регу пользователя ALL :) Это проще, чем опять думать как сделать...

   
 
 автор: Trianon   (13.04.2007 в 15:53)   письмо автору
 
   для: mr Bin   (13.04.2007 в 15:49)
 

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

   
 
 автор: klassgame   (13.04.2007 в 15:50)   письмо автору
 
   для: Trianon   (13.04.2007 в 15:35)
 

М-дя... Об этом я не подумал... Тогда лучше использовать ваш пример, т.е. нет адресата - значит всем.:)

   
 
 автор: klassgame   (13.04.2007 в 15:53)   письмо автору
 
   для: klassgame   (13.04.2007 в 15:50)
 

Можно и запретить, можно зарегистрировать самому... В общем спасибо за помощь! Вроде работает.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования