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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Anguis
Отправлено: 13 Февраля, 2013 - 17:43:17
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012  


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




Необходимо разработать систему онлайн-общения на сайте.
Хочу сделать так. Для общения двух человек - одна строка в таблице, поле longtext для текста переписки + поля для айдишников общающихся юзеров.
Нужно как-то придумать что-бы оба айдишника запихать в одно поле. Ибо форму общения может вызвать как один пользователь, так и другой и запрос что для одного, что для другого должен выглядеть одинаково, примерно как-то так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM talks WHERE somefield=$id


Нужно что-бы, например, для $id=12 и $id=14, выбралась одна и та же запись (общаются пользователи с id 12 и 14).
Что можно придумать для Mysql MyISAM?
(Добавление)
Мне пока ни чего умнее
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM talks WHERE user=$id OR altuser=$id

В голову не идет Недовольство, огорчение
(Добавление)
Ой ой ой. Напортачил. Тут используется связка. Айди вызывающего пользователя + айди вызываемого пользователя. Т.е. в запрос попадает эта связка.
 
 Top
Anguis
Отправлено: 14 Февраля, 2013 - 01:06:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012  


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




Все что придумал на данный момент:
PHP:
скопировать код в буфер обмена
  1. $sql = 'SELECT * FROM talks WHERE identy ='.($id0>$id1?$id1.'&'.$id0:$id0.'&'.$id1)

В поле identy будут храниться значения типа 12&14, 45&87 Меньший id всегда на первом месте, что-бы не делать OR в запросе. Ну и индекс безусловно по identy.
Выскажите мнение по поводу этой хни, потянет для сельской местности?

(Отредактировано автором: 14 Февраля, 2013 - 01:07:13)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB