первая таблица - bplus
- имеет столбец с именем home01
со значениями, идентичными некоторым значениям в столбце fname
табличных banners
$items = '';
$sql = "select home01 from bplus";
$st = $db->query($sql);
$arr = $st->fetchAll(PDO::FETCH_COLUMN);
foreach ($arr as $el){
$el = trim($el);
$sqlb = "select * from banners where fname = '" . $el . "'";
$stb = $db->query($sqlb);
$row = $stb->fetch();
$items .= "<img class='itemtop' src = '../banners/" . $el . "' alt='img' data-id = " . $row['id'] . " data-fname = '" . $row['fname'] . ">\n";
}
echo $items;
это работает, но, вероятно, существует более короткий путь, с одним оператором select
.
Любая помощь?
использовать LEFT JOIN
select bplus.home01, banners.* from bplus left join banners on bplus.home01 = banners.fname;
bplus
.id не banners.id
на banners.id
. Также мне нужны все значения столбцов из banners
.
WHERE fname in ($el1, $el2)
(так же, как используяOR
)el1
,el2
... неel2
одинаково. Я не уверен, что ты думаешь.