Я пытаюсь отобразить недавно просмотренные записи в том порядке, в котором они были просмотрены (последние просмотрены вверху списка).
Максимум 4 продукта, которые будут показаны. Код не показывает записи в этом порядке. Кто-нибудь может увидеть, что не так?
Я думаю, что массив не отображается в правильном порядке, когда записи найдены в базе данных:
<?php
//
// --------------------------------------------------------------
//
// set cookie for recent items
//
// ---------------------------------------------------------------
//
$currentProduct = $id;//gets product id from URL that was viewed
//Set default of viewed products to empty array
$viewed_products = array();
//If there is a viewed cookie value - use it
if(isset($_COOKIE['recently_viewed9']))
{
//$viewed_products = unserialize($_COOKIE['recently_viewed']);
$viewed_products = (array) explode( ',', $_COOKIE['recently_viewed9']);
}
//If the currently viewed product exists in the array remove it
if(in_array($currentProduct, $viewed_products))
{
unset($viewed_products[array_search($currentProduct, $viewed_products)]);
}
//Add the current product to the end of the array
$viewed_products[] = $currentProduct;
//Ensure length of array is no more than 3 items
if (sizeof( $viewed_products ) > 4 )
{
array_shift( $viewed_products );
}
// Store cookie
setcookie( 'recently_viewed9',implode( ',', $viewed_products ), time()+(86400 * 30), '/' );//changed here
//
// ------------------------------------------------------------------
//
// show recent items SQL
//
// ------------------------------------------------------------------
//
//$currentProduct = $id;//gets product id from URL that was passed
$viewed_products="";
if(isset($_COOKIE['recently_viewed9']))
{
//$viewed_products = unserialize($_COOKIE['recently_viewed']);
$viewed_products = (array) explode( ',', $_COOKIE['recently_viewed9']);
//Run query to get records for recently viewed products
$listOfviewed = implode( ',',$viewed_products);
$max = sizeof($viewed_products);
$recentProducts = $db->get_results("SELECT id, prodcode, artist, title FROM records WHERE id IN ($listOfviewed) ");
//Create output for list of recent products
$output = "";
echo' <div style="text-align: center">';
foreach($recentProducts as $prod )
{
// show products
// etc ......
}
?>