Вывод избранных товаров на странице
В общем сейчас на сайте реализована кнопка добавления и удаления из избранного, теперь необходимо вывести избранные товары на странице.У не авторизованных пользователей ID избранных товаров хранятся в сессиях,а у авторизованных хранятся в бд и в сессии.Сейчас стоит задача вывести эти товары на странице Избранных. Вот как мне обрисовал план действий разработчик у которого я в подчинении :
нужно получить массив id из сессии, сделать мерж с массивом id из БД. и этот массив id скормить в селект на товары. полученные полные данные скормить в catalog-smalldescription.php , после чего делай инклюд catalog-smalldescription.php в цикле. всё по аналогии с каталогом
Объясните пожалуйста более подробно(для тупых),что нужно сделать и желательно с примерами .Камнями не кидайте ,у меня базовые знания в PHP и работаю только 3 неделю программистом
Я сделал вот такую хрень, но боюсь кроме ,как хренью этот код и не назовешь.
$favoriteDb = mysqli_query(DB::db(), "SELECT * FROM users_goods")->fetch_assoc();
$favoriteSes[] = $_SESSION['favorite'];
$result = array_merge($favoriteSes,$favoriteDb);
var_dump($result);
//во вложении результат моего мега МЕРЖА
Ответы (2 шт):
Раз уж у вас в $_SESSION['favorite'] ид товаров являются ключами массива, то просто суйте в этот массив данные из бд
$favoriteSes = $_SESSION['favorite']; // не надо здесь "$favoriteSes[] ="
foreach ($favoriteDb as $row) {
$favoriteSes[$row['GOOD_ID']] = 1;
}
Ну и затем его в селект:
$query = 'SELECT ... WHERE id IN ('.implode(', ', array_keys($favoriteSes)).')';
Как тогда человек убирает товар из избранных?
Я бы предложил 234444 => -1.
Тогда простой array_merge не подойдет, нужно делать 2 цикла:
- добавить из базы, исключая удаленные
- добавить добавленные из сессии
Потом запрос.