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
Форумы портала PHP.SU :: Версия для печати :: Вывести похожие записи по категориям
Форумы портала PHP.SU » » Работа с СУБД » Вывести похожие записи по категориям

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

1. leshiy - 04 Мая, 2018 - 15:59:35 - перейти к сообщению
Есть 2 таблицы categories с категориями и date с постами где в поле cat хранятся категории в формате 2,8,18 к которым относиться данный пост.У меня получилось только вытащить похожие посты по одной категории, а нужно по всем этим трем.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $sql = "SELECT SQL_CALC_FOUND_ROWS `date`.*,  `categories`.`tit`
  3. FROM `date`, `categories` WHERE `categories`.`id` = FIND_IN_SET(8,cat)";
  4.  
2. Sail - 08 Мая, 2018 - 23:18:48 - перейти к сообщению
leshiy, проще всего дописать к выражению where ещё пару условий:
or `categories`.`id` = FIND_IN_SET(2,cat) or `categories`.`id` = FIND_IN_SET(18,cat)
3. Vladimir Kheifets - 09 Мая, 2018 - 12:04:43 - перейти к сообщению
leshiy пишет:
Есть 2 таблицы categories с категориями и date с постами где в поле cat хранятся категории в формате 2,8,18 к которым относиться данный пост.У меня получилось только вытащить похожие посты по одной категории, а нужно по всем этим трем.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $sql = "SELECT SQL_CALC_FOUND_ROWS `date`.*,  `categories`.`tit`
  3. FROM `date`, `categories` WHERE `categories`.`id` = FIND_IN_SET(8,cat)";
  4.  

Добрый день!
Можно написать после where одно условие с REGEXP:
CODE (SQL):
скопировать код в буфер обмена
  1. .... WHERE   categories`.`id` REGEXP '([[:<:]]2[[:>:]]|[[:<:]]8[[:>:]]|[[:<:]]18[[:>:]])'

Удачи!

 

Powered by ExBB FM 1.0 RC1