сначала показывать избранные элементы, затем показывать другие в каждом цикле php

#php

#php

Вопрос:

Я пытаюсь показывать избранные элементы сверху в каждом цикле, и после показа избранных элементов будут показаны оставшиеся элементы. На данный момент я использую два цикла, чтобы сначала получить функцию, а затем оставшиеся после.

У меня есть столбец с именем featured_in в имени таблицы panel_products , и родительский цикл исходит из имени таблицы tariff , потому что цены и другие параметры фильтрации находятся в tariff таблице.

Итак, я делаю так, что сначала получаю все параметры из tariff таблицы, используя цикл foreach, а затем использую внешний ключ post_id из tariff таблицы, чтобы получить другие сведения об элементах.

итак, можем ли мы решить это за один цикл?

Мой код:

 $sql = $db_con->prepare("SELECT * FROM `panel_tariff` ORDER BY `price` ASC");
$sql->execute();
$tariff = $sql->fetchAll();
if (count($tariff) > 0) {
    foreach ($tariff as $tariff) { 

        $item_id = $tariff['post_id']; // item id to use as foreign key

        $sql = $db_con->prepare("SELECT * FROM `panel_product` WHERE `id` = '".$item_id."'");
        $sql->execute();
        $items = $sql->fetch(PDO::FETCH_ASSOC);

        $itemsFID = $items['featured_in']; // To check if this item is featured

        $pageID = '74'; // To check if this item featured in specific page

        if (strpos($itemsFID, $pageID) === false) {

            // Show featured items

        }
    }
}
  

Итак, что вы думаете. Я знаю, что сначала я должен попробовать Google и выполнить поиск в Интернете, и я пытался, но не нашел никакого решения, поэтому я пишу здесь.

С уважением, Qarar

Комментарии:

1. $pages['id'] откуда вы это берете?

2. @devpro Я изменил это. Это идентификатор страницы, на которой отображается продукт.

3. итак, если $item_id равно 74, то будет отображаться избранный элемент? верно?

4. @devpro правильно.

5. разделяется ли featured_in запятой? почему вы используете strpos?