Сортировка товаров в products_collection Есть решение

Приветствую, такой вопрос:

получил я хэш нужных мне товаров, причем отсортированных в нужном мне порядке.

Например: "id/1, 5, 3";

Передаю в new shopProductsCollection($hash); и вывожу на сайте. Но выводится на сайте в таком порядке "id/5, 3, 1" - по уменьшению id либо "id/1, 3, 5", если отключить строчку $sql .= $this->_getOrderBy(); в shopProductsCollection.class.php

Как мне сохранить собственную сортировку, которую я получил запросом в mysql?

1 ответ

  • 1
    Кирилл Протасевич 24 мая 2015 06:39 # Решение

    Решил проблему следующим образом: отсортировать массив полученной коллекции по массиву, где товары стоят в верном положении

    //тут запрос sql с выборкой нужный товаров $sql_prod потом

    $products = $model->query($sql_prod)->fetchAll();

    $hash = 'id/';

    $req_order = array();

    foreach($products as $product)

    {

    array_push($req_order, $product['product_id']);

    $hash .= $product['product_id'] . ', ';

    }

    $collection = new shopProductsCollection($hash);

    $new_prod = $collection->getProducts();

    //сортируем в нужном нам порядке

    $new_prod_order =array();

    foreach($req_order as $idx)

    {

    $new_prod_order[] = $new_prod[$idx];

    }

    // и возвращаем полученную и отсортированную в нужном порядке коллекцию товаров

    return ($new_prod_order);

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите