#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?