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 :: Запрос и поиск слова в столбце ячейки sql

 PHP.SU

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


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

> Описание: Запрос и поиск слова в столбце ячейки sql
Ромчик
Отправлено: 19 Июня, 2012 - 13:28:12
Post Id



Частый гость


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


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




Здравствуйте:
Пожалуйста подскажите каким SQL запросом можно найти ячейку под своим номером а также из столбца под названием подписчики найти задаваемый номер пользователя?

Пример поиска ячейки содержащий ид пользователя:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `friends` WHERE `iduser`='{$id}'


А как искать одним скул запросом ячейку а потом в другом столбце этой ячейки под названием friends любое число или слово? Ну как бы проверка, если в ячейке пользователя под ид к примеру 1 в столбце под названием friends присутствует ид другого пользователя, то этот пользователь являеться другом. Пожалуйста помогите Улыбка Улыбка
(Добавление)
ау
 
 Top
EuGen Администратор
Отправлено: 19 Июня, 2012 - 15:19:19
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Значит, "список друзей" в виде id, перечисленных через запятую? Порочная практика.
Сделайте таблицу-связку с полями user_id - как id пользователя и friend_id - как id друга и наличие друга будет определяться простой выборкой со сравнением по равенству.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Ромчик
Отправлено: 19 Июня, 2012 - 20:25:46
Post Id



Частый гость


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


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




EuGen, я бы такое сделал, но вы представьте сколько запросов будет к MYSQLi. Легче иметь 1 ячейку с друзьями у одного пользователя, чем привязывать их записями. Если будет парсинг или ддос на базу то она лягет быстрее чем нужно. Да и нагрузка при большой активности тоже будет большая, мало того да и сама база будет весить гигабайтами если у вас будет больше 1000 активных пользователей. Легче в 1 ячейке пользователя укзать его id и в другом столбце id его друзей и подписчиков через запятую.
________________________________ ________________________________ ___
ПС: Я новичёк в php, поэтому могу ошибаться. С php работаю всего 4 недели

(Отредактировано автором: 19 Июня, 2012 - 20:27:05)

 
 Top
Мелкий Супермодератор
Отправлено: 19 Июня, 2012 - 20:58:17
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Ромчик пишет:
я бы такое сделал, но вы представьте сколько запросов будет к MYSQLi

Меньше, удобнее и эффективнее.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT friends.* FROM user_friends JOIN friends ON user_id = friend_id WHERE `юзер из таблицы связки`=нужны_юзер_id

1 запрос. Сразу достать всех друзей пользователя.


-----
PostgreSQL DBA
 
 Top
snikers987
Отправлено: 19 Июня, 2012 - 21:04:46
Post Id



Участник


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


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




Ромчик
И сколько по Вашему будет запросов? Одного вполне достаточно. Например,
users:
id | name

friends:
user_id | friend_id

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT t1.* FROM `users` AS `t1`
  2. LEFT JOIN `friends` AS `t2` ON `t1`.`id` = `t2`.`friend_id`
  3. WHERE `t2`.`user_id` = 1;
  4.  


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB