PHP - вложенный цикл, извлекающий изображение из предыдущих циклов, если изображение не существует в текущем цикле - PullRequest
0 голосов
/ 06 июня 2018

У меня есть вложенный цикл, в который я пытаюсь вставить разные изображения из разных мест на основе ссылки на обзор, которую они оба имеют.Моя проблема в том, что, если «bg-image» не существует для второго цикла, кажется, что вместо этого извлекается изображение предыдущего цикла.

Есть ли причина для этого?Я хочу, чтобы он показывал либо ничего, либо изображение по умолчанию, если «bg-image» не существует.

$query = 'SELECT * FROM brands_table WHERE brand_table_group = "top-branding" ORDER BY number ASC';
$query = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_object($query)){


         $query2 = 'SELECT pages.url , content.contentText FROM pages INNER JOIN content ON `content`.page_id = pages.`master_id` WHERE content.name = "bg-image" AND pages.url = "'. $row->review_link .'" ORDER BY created_date ASC';
         $query2    = mysql_query($query2) or die(mysql_error());
         while($row2 = mysql_fetch_object($query2)){



         }

//The images display here

}

1 Ответ

0 голосов
/ 06 июня 2018

Не прямой ответ, но получение результатов из базы данных, циклическое выполнение набора результатов и выполнение запросов на основе каждой строки, как правило, является анти-паттерном.Вы можете вернуть все результаты сразу и выполнить цикл:

SELECT brands_table.*, pages.url , content.contentText 
FROM brands_table
    LEFT OUTER JOIN pages 
        ON brands_table.review_link = pages.url
    LEFT OUTER JOIN content 
        ON `content`.page_id = pages.`master_id` 
WHERE content.name = "bg-image" 
    brand_table_group = "top-branding"
ORDER BY number ASC, created_date ASC;

ВНУТРЕННИЕ СОЕДИНЕНИЯ могут работать здесь просто отлично, в зависимости от данных и ваших потребностей.

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