Форумы / National / Russian / Тех. поддержка / Выводить цикл по определенному условию

Kopusha
#1 02.08.2018 13:34
Есть обычный цикл вывода фолио
https://github.com/Cmsworks/cot-freelance/blob/abf5ed063570ec083bbeee59a7e2f09a2cb26bfc/modules/folio/inc/folio.list.php#L113
 
Выводятся все фолио всех пользователей. Есть плагин favoriteusers - он позволяет добавлять пользователей в избранное. Отдельная табл в БД и там 
 
favu_id (счетчик) favu_user_id (кто добавил) favu_added_user_id (кого добавил)
 
1 1 2 
2 1 34
3 2 1
К примеру пользователь 1 добавил 2 и 34 себе в избранные а пользователь 2 в ответ добавил пользователя 1
 
 
Есть функция 
function cot_favu_infavorite($user_id,$added_user_id){
global $db, $db_favorite_users;
return $db->query("SELECT COUNT(*) FROM {$db_favorite_users} WHERE favu_user_id={$user_id} AND favu_added_user_id={$added_user_id}")->fetchColumn();
}

 

Я хочу в цикле вывода фолио выводить ТОЛЬКО избранных
То есть надо
1) Достать все ID избранных у текущего пользователя
2) В запросе добавить что то типа WHERE user_id IN ($users_in_favorite)
 
Но мне не хватает знаний синтаксиса(

 
Kort
#2 03.08.2018 10:01

Все правильно думаешь: формируй массив $users_in_favorite подходящим способом, потом преобразуй его в строку, а затем WHERE ... IN:

$users_in_favorite = array('2', '22', '222');
$users_in_favorite = implode(",", $users_in_favorite);
$sql = "SELECT * FROM whatever WHERE user_id IN ('$users_in_favorite')";

 

 

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kopusha
#3 03.08.2018 10:05

Я пробовал часа три) 

а не сложно полностью написать, я боюсь что не осилю. Вроде все просто но ноли в массиве

Kort
#4 03.08.2018 11:56

сделай копию сборки и сбрось плз в личку доступы

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kopusha
#5 30.08.2018 11:54

Проблема именно в том что я не формирую верно массив. Если руками $users_in_favorite = array (32,22); то все ОК - только от нужных 32 22 юзеров выводит записи. 

Как верно сформировать массив с id пользователей в избранном через функцию 

function cot_favu_infavorite($user_id,$added_user_id){
	global $db, $db_favorite_users;
	return $db->query("SELECT COUNT(*) FROM {$db_favorite_users} WHERE favu_user_id={$user_id} AND favu_added_user_id={$added_user_id}")->fetchColumn();
}

Все происходит в folio.list.php где работают теги (int)$usr['id'], (int)$urr['user_id'], (int)$item['user_id'] 

verotela
#6 01.09.2018 10:17