Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как организовать базу для персонального чата между пользователями

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
zzzzzz
Отправлено: 26 Августа, 2013 - 10:33:12
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Здравствуйте.
Делаю ПС между пользователями
Разобрался с ajax и на стороне сервера все налажено но...

Как организовать структуру базы данных для ПС?
Как правильно заносить и вытаскивать записи
с mysql работал но никак не могу построить базу

Заранее спасибо
(Добавление)
CODE (html):
скопировать код в буфер обмена
  1. id   messages       userid     time
  2. 1    привет            1        ---
  3. 2    привет            2        ---
  4. 3    как дела          1        ---
  5. 4    нормально         2        ---


Так все ок, могу вытащить все сообщения ГДЕ userid == myid AND userid == idsobesednika
Правильно?

(Отредактировано автором: 26 Августа, 2013 - 13:23:38)

 
 Top
VestCoastman
Отправлено: 26 Августа, 2013 - 14:45:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




Добавить колонку с id собеседника
 
 Top
zzzzzz
Отправлено: 26 Августа, 2013 - 16:08:16
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. id   messages       userid    sobesednikiID     time
  2. 1    привет            1            2            ---
  3. 2    привет            2            1            ---
  4. 3    как дела          1            2            ---
  5.  

(Добавление)
получается в userid попадает тот кто начал беседу первый а sobesednikid соответственно отвечающий???

(Отредактировано автором: 26 Августа, 2013 - 16:13:05)

 
 Top
zzzzzz
Отправлено: 26 Августа, 2013 - 19:59:28
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




я юзер 2 и пишу юзеру 1, получается добавляется строка
CODE (html):
скопировать код в буфер обмена
  1.  
  2. id      messages        userid    sobesednikiID     time
  3. 4     новое сообщ         2             1           ---
  4.  


Получается бардак, потому что очень тяжело вытащить все сообщения где userid == мой id И sobesednikiID == idсобеседника и наоборот userid == idсобеседника И sobesednikiID == мой id, ведь я не знаю собеседник я или тот кто начал чат

Просто постройте выборку которая вытащит все сообщения между пользователем 1 и 2 и сами поймете.
 
 Top
caballero
Отправлено: 26 Августа, 2013 - 20:19:37
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




а зачем вообще какие о собеседники?
просто два юзера и все.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
zzzzzz
Отправлено: 26 Августа, 2013 - 20:26:54
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




caballero опишите пож-ста структуру таблицы если бы вы делали Личные сообщения на своем сайте
 
 Top
armancho7777777 Супермодератор
Отправлено: 26 Августа, 2013 - 20:31:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Думаю, этого достаточно:
---+--------------+-----------+--------+-------+-----------------+
id | messages | from_id | to_id | time | read [0 | 1] |
---+--------------+-----------+--------+-------+-----------------+

(Отредактировано автором: 26 Августа, 2013 - 21:22:36)

 
 Top
zzzzzz
Отправлено: 26 Августа, 2013 - 20:52:17
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




я юзер 1 отправляю юзеру 2 сообщение. получается
-- | мое сообщение | 1 | 2 | -- | --

и юзер 2 мне отвечает
-- | ответное сообщение | 2 | 1 | -- | --

Скажите пож-ста, как теперь юзеру 2 вытащить весь чат между ним и юзером 1.
Прошу написать запрос. До меня никак не дойдет как должна быть построена выборка

(Отредактировано автором: 26 Августа, 2013 - 20:54:46)

 
 Top
armancho7777777 Супермодератор
Отправлено: 26 Августа, 2013 - 21:03:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.   SELECT `messages`, `time`
  3.     FROM `mess_table`
  4.    WHERE `to_id` = '{$userId}'
  5.      AND `read` = 0  -- Непрочитанные
  6. ORDER BY `time`
  7.  


С получение имён отправителей из таблицы "users":
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.      SELECT mes.`messages`, mes.`from_id`, mes.`time` mess_write_time,
  3.             u.`name` user_name
  4.        FROM `mess_table` mes
  5.   LEFT JOIN `users` u
  6.          ON u.`id` = mes.`from_id`
  7.       WHERE mes.`to_id` = '{$userId}'
  8.         AND mes.`read` = 0  -- Непрочитанные
  9.    ORDER BY mes.`time`
  10.  

(Отредактировано автором: 26 Августа, 2013 - 21:29:59)

 
 Top
caballero
Отправлено: 26 Августа, 2013 - 21:08:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




не очень понятно
это личные сообщения или чат в реальном времени?
кагбэ не одно и тоже


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
armancho7777777 Супермодератор
Отправлено: 26 Августа, 2013 - 21:13:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




caballero пишет:
или чат в реальном времени?

Мне показалось чат )
 
 Top
zzzzzz
Отправлено: 26 Августа, 2013 - 21:27:40
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




это личные сообщения в реальном времени
 
 Top
armancho7777777 Супермодератор
Отправлено: 26 Августа, 2013 - 21:32:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




И проставьте индексы по полям: from_id, to_id, read
 
 Top
zzzzzz
Отправлено: 26 Августа, 2013 - 21:34:38
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




armancho7777777 Ваш первый sql запрос выводит все записи своего собеседника, но не свои тоже

Блин чувствую я туплю, пожалуйста не бросайте меня в эту трудную минуту Растерялся

(Отредактировано автором: 26 Августа, 2013 - 21:34:59)

 
 Top
armancho7777777 Супермодератор
Отправлено: 26 Августа, 2013 - 21:38:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




В поле to_id кто у Вас ?)

Отправленные:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.   SELECT `messages`, `time`
  3.     FROM `mess_table`
  4.    WHERE `from_id` = '{$userId}'
  5.      AND `read` = 0  -- Непрочитанные
  6. ORDER BY `time`
  7.  


Полученные:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.   SELECT `messages`, `time`
  3.     FROM `mess_table`
  4.    WHERE `to_id` = '{$userId}'
  5.      AND `read` = 0  -- Непрочитанные
  6. ORDER BY `time`
  7.  

(Отредактировано автором: 26 Августа, 2013 - 21:41:23)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB