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

Форум MySQL

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

 

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

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

тема: Вывод сообщений в чате (приват и общие)
 
 автор: FBI   (14.03.2006 в 12:55)   письмо автору
 
 

Есть чат..) а в чате есть приват..) сообщений в чат выводится по 15 ... но надо сделать чтобы когда в привате общались на обычные сообщения в чате это никак не влияло..) а то если общаются в привате.. то в чате меньше сообщений становится..) например в привате 10 сообщений.. а в чате 5 осталось..)


$sql= mysql_query("SELECT * FROM 'gamechat' ORDER BY 'idmess' DESC LIMIT 15");

   
 
 автор: FBI   (14.03.2006 в 13:06)   письмо автору
 
   для: FBI   (14.03.2006 в 12:55)
 

А точно..) Как сделать чтобы всегда отображалось по 15 сообщений?..)

   
 
 автор: Trianon   (14.03.2006 в 13:07)   письмо автору
 
   для: FBI   (14.03.2006 в 12:55)
 

SELECT * FROM 'gamechat'
WHERE NOT реплика_приватная
OR логин_запроса = автор_реплики
OR логин_запроса =адресат_приватной_реплики
ORDER BY 'idmess' DESC LIMIT 15
Примерно такая логика

   
 
 автор: FBI   (14.03.2006 в 13:15)   письмо автору
 
   для: Trianon   (14.03.2006 в 13:07)
 

Это что?=) т.е. для чего?))

   
 
 автор: Trianon   (14.03.2006 в 13:21)   письмо автору
 
   для: FBI   (14.03.2006 в 13:15)
 

это для того, чтобы отображалось всегда 15 сообщений (приватных или открытых - неважно)

   
 
 автор: FBI   (14.03.2006 в 13:21)   письмо автору
 
   для: Trianon   (14.03.2006 в 13:21)
 

что - то ничего не получается.. всё также как и было)

   
 
 автор: FBI   (14.03.2006 в 13:45)   письмо автору
 
   для: FBI   (14.03.2006 в 12:55)
 

Loki, ты где?=(

)))

   
 
 автор: Loki   (14.03.2006 в 14:08)   письмо автору
 
   для: FBI   (14.03.2006 в 13:45)
 

Так Trianon уже все написал. могу только его процитировать:)
Лучше покажите как его поняли вы, вот тогда и будет ясно почему не работает.

   
 
 автор: FBI   (14.03.2006 в 14:37)   письмо автору
 
   для: Loki   (14.03.2006 в 14:08)
 

Ну я его понял так как он написал...))
У меня есть вот такая вот таблица =) :


idmess  | usermechat | idmechat  | usermepriv  | idmepriv | userotkoprivat |  idotkoprivat | messchat  


idmess - ид сообщения
usermechat - ник того кто написал сообщение
idmechat - ид того кто написал сообщение
usermepriv - ник того кто написал приватное сообщение
idmepriv - ид того кто написал приватное сообщение
userotkoprivat - ник того кому написано приватное сообщение
idotkoprivat - ид того кому написано приватное сообщение
----
)

   
 
 автор: Trianon   (14.03.2006 в 14:44)   письмо автору
 
   для: FBI   (14.03.2006 в 14:37)
 

Еще бы пример строк в этой базе. Для открытого сообщения и для приватного.

   
 
 автор: FBI   (14.03.2006 в 14:57)   письмо автору
 
   для: FBI   (14.03.2006 в 12:55)
 

ой..трудно написать... посмотри картинку=)

32 - обычное
33 - приватное

   
 
 автор: Trianon   (14.03.2006 в 15:11)   письмо автору
 
   для: FBI   (14.03.2006 в 14:57)
 

По картинке не видно, поля привата являются NULL или просто хранят пустые строки. Это же phpMyAdmin? Вам несложно выберать export в нем и полученный дамп для SQL зазиповать и приаттачить?

   
 
 автор: FBI   (14.03.2006 в 15:21)   письмо автору
 
   для: Trianon   (14.03.2006 в 15:11)
 

Могу прям сюда написать... =)


-- 
-- Структура таблицы 'gamechat'
-- 

CREATE TABLE 'gamechat' (
  'idmess' smallint(5) unsigned NOT NULL auto_increment,
  'usermechat' varchar(130) NOT NULL default '',
  'idmechat' varchar(10) NOT NULL default '',
  'usermepriv' varchar(80) NOT NULL default '',
  'idmepriv' varchar(10) NOT NULL default '',
  'userotkoprivat' varchar(130) NOT NULL default '',
  'idotkoprivat' varchar(10) NOT NULL default '',
  'messchat' text NOT NULL,
  UNIQUE KEY 'idmess' ('idmess')
) TYPE=MyISAM AUTO_INCREMENT=70 ;

-- 
-- Дамп данных таблицы 'gamechat'
-- 

INSERT INTO 'gamechat' VALUES (1, '<font color = #AA0055>~Бригада~</font>', '1', '', '0', '~Бригада~', '1', 'Привет');
INSERT INTO 'gamechat' VALUES (2, '<font color = #AA0055>~Бригада~</font>', '1', 'Spirit Of Light', '26', '~Бригада~', '1', 'ну да... =) я откуда знаю?)');

   
 
 автор: Trianon   (14.03.2006 в 15:48)   письмо автору
 
   для: FBI   (14.03.2006 в 15:21)
 

Ну вот. значит там пустые строки а не NULLs
Тогда так:
<? 
mysql_query
("SELECT * FROM gamechat " 
            
."WHERE idmepriv = ''  " 
            
."OR $request_id = idmepriv " 
            
."OR $request_id = idotkoprivat " 
            
."ORDER BY idmess DESC " 
            
."LIMIT 15"); 
?>

Может тогда и кусок php-кода? А то гадать как-то тяжко.

   
 
 автор: FBI   (14.03.2006 в 18:18)   письмо автору
 
   для: Trianon   (14.03.2006 в 15:48)
 

Да..=) так вот работает..=) спасибо=)

   
 
 автор: Trianon   (14.03.2006 в 15:19)   письмо автору
 
   для: FBI   (14.03.2006 в 14:57)
 

<? 
mysql_query
("SELECT * FROM gamechat "
            
."WHERE idmepriv is NULL "
            
."OR $request_id = idmepriv "
            "OR 
$request_id = idotkoprivat "
            
."ORDER BY idmess DESC "
            
."LIMIT 15");
?>

наверное так.
$request_id - это id того, чей запрос мы сейчас обрабатываем.

   
 
 автор: FBI   (14.03.2006 в 15:33)   письмо автору
 
   для: Trianon   (14.03.2006 в 15:19)
 

Теперь вывелось 15 самых первых сообщений... и вывелись они только мне..) т.е. получается что кто написал сообщение.. тот его и видит...)) другим не видно..)

   
Rambler's Top100
вверх

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