Трудно сказать, не видя структуру массива, которую он возвращает, но если имя файла изображения - это просто идентификатор продукта, то это должно сработать.
Вы пытались выполнить конкатенацию строк с запятой? Это работает?
Конкатенация строк должна выполняться следующим образом:
$str = 'Text'.$variable.'More Text';
Попробуйте это:
if (empty($products)) {
echo '<p>No products to display yet</p>';
} else {
foreach ($products as $product) {
?>
<img src="../uploads/thumbs/<?=$product['id']?>/<?=$product['id']?>.jpg" />
<p><a href="view_product.php?product_id=<?=$product['id']?>"><?=$product['name']?></a>
<br/>
<?=$product['description']?>
<br/>
<?php
}
}
Обязательно примите все правильные ответы, которые вам помогли.
Что вы делали неправильно:
echo '<img src="../uploads/thumbs/<?php echo $product_id; ?>/<?php echo $product_id; ?>.jpg"
Вы должны указать ключи массива, такие как $ product ['id'], а не $ product_id, похоже, что эта переменная не существует.
Edit:
Переменные внутри строк:
//Concatenation:
echo '<img src="'.$pathtoimage.'" />';
//In string parsing:
echo "<img src=\"{$pathtoimage}\" />";
//Or break out of php like this:
<img src="<?php echo $pathtoimage;?>" />
//or the shorter:
<img src="<?=$pathtoimage?>" />