Foreach цикл вывод путей картинок в img src из Mysql
Помогите пожалуйста решить вопрос.
Не выводит фотографии в цикле forEach в тег <img src="./Download_Rent/"
При этом если сделать дамп или print_r массива выводит все данные корректно, если взять ссылку картинки и прописать путь в браузере, она открывается.
Может нужно данные получать используя другой цикл, например while? Может путь к файлу / папке по иному ставить?
Приведу часть из них. Единственное непонятно: на всех string значение либо 22 либо 23 - других цифр нет при var_dump.
array(135) { ["3624_5f0ce68b061f3.jpg"]=> string(22) "3624_5f0ce68b061f3.jpg" ["3624_5f0ce68b073d0.jpg"]=> string(22) "3624_5f0ce68b073d0.jpg" ["3625_5f12e9f9212ba.jpg"]
Данные получаю так для конкретно изображений. Все остальное выводит в плане данных, в данный момент вместо пути к фото из БД, выводит фото из команды else Photo/No photo.jpg
$top3 = R::getAssoc('SELECT id, year, run, price, description FROM rent WHERE id IN (8321, 8319, 8320) ORDER BY time_upload DESC');
$img = R::getAssoc('SELECT photo FROM rent, rent_photo WHERE rent.id = rent_photo.rent_id');
<?php if (isset($top3)): ?>
<div class="main">
<div class="row">
<?php foreach($top3 as $id => $ads): ?>
<a href="ads.php/rent/<?=$id;?>">
<div class="column">
<div class="content">
<h3><?php isset($ads['title']) ? $ads['title'] : null; ?></h3>
<h3><?=$ads['year']; ?></h3>
<?php if(isset($ads['img'])): ?>
<div class="fotorama" data-navposition="bottom" data-width="95%" data-nav="thumbs"data-thumbwidth="40px" data-thumbheight="40px">
<img src="./Download_Rent/<?=$ads['img'];?>" width="95%">
</div>
<?php else: ?>
<img src="Photo/No photo.jpg" width="100%">
<?php endif; ?>
<h3>Цена: <?= number_format($ads['price'], 0, '.', '.'); ?> Р.</h3>
<?php if (isset($ads['run'])):?>
<h3>Пробег: <?=number_format($ads['run'], 0, '.', ' '); ?> км.</h3>
<?php endif; ?>
<p><?=substr($ads['description'], 0, 120),'...'; ?></p>
<button class="PreviewADS">Подробнее...</button>
</a>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
Ответы (1 шт):
С учетом описанного комментария " Не связаны, мой косяк, там стоит rent вместо sell в коде. исправил. Решение до сих пор не получено."
Попробуйте строки
$top3 = R::getAssoc('SELECT id, year, run, price, description FROM rent WHERE id IN (8321, 8319, 8320) ORDER BY time_upload DESC');
$img = R::getAssoc('SELECT photo FROM rent, rent_photo WHERE rent.id = rent_photo.rent_id');
заменить на
$sql = "SELECT
rent.id,
rent.year,
rent.run,
rent.price,
rent.description,
rent_photo.photo AS img
FROM
rent
LEFT JOIN
rent_photo
ON
rent.id = rent_photo.rent_id
WHERE
rent.id IN (8321, 8319, 8320)
ORDER BY
rent.time_upload DESC ";
$top3 = R::getAssoc($sql);