показать недавно просмотренные товары cookie sql - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь отобразить недавно просмотренные записи в том порядке, в котором они были просмотрены (последние просмотрены вверху списка).

Максимум 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 ......

        }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...