Using this code:
<?php
$stmt = $pdo->prepare("SELECT pdimg1 FROM products WHERE pdcat LIKE 'fashion%'");
$stmt->execute();
$rows = $stmt->fetchAll();
$img1 = '';
foreach ($rows as $row) {
$Rpdimg1 = $row['pdimg1'];
$img1 .= $Rpdimg1;
}
UPDATED TO INCLUDE BELOW:
$stmt = $pdo->prepare("SELECT * FROM products WHERE pdcat LIKE 'collectibles%'");
$stmt->execute();
$rows = $stmt->fetchAll();
$img2 = '';
foreach ($rows as $row) {
$Rpdimg2 = htmlspecialchars($row['pdimg1']);
$img2 .= $Rpdimg2;
}
$cats = array(
array(
"title" => "FASHION",
"img" => $img1
),
array(
"title" => "COLLECTIBLES & ART",
"img" => $img2,
)
);
foreach ($cats as $cat): ?>
<?php echo $cat["title"]; ?>
<img src="images/<?php echo $cat["img"]; ?>">
<?php endforeach; ?>
I get this result displayed in Inspector Tools on Firefox:
<img src="images/shirt.jpgpants.jpg"> [But on the webpage, this displays as a broken image.]
But what I want is this result:
<img src="images/shirt.jpg"> <img src="images/pants.jpg"> [However, I would like the above results displayed as IMAGES, not as html text.]
Those two images are values echoed from my database. They are from my products table:
pdid | pdimg1 ----------------- 1 | shirt.jpg 2 | pants.jpg
So basically
1) I’m selecting rows from my database table products
2) I’m inserting them as variables into an array (which is used for other purposes)
3) I’m using a foreach loop to echo out those variables from that array
4) Now the problem lies in that those IMAGE variables bunch together as a SINGLE WORD (shirt.jpgpants.jpg) instead of as separated values, and do not get encased in their OWN img tags, but are bunched together under the same img tag.
5) So I demonstrated above in bold text the result that I wanted. How would I achieve this? Thank you
Advertisement
Answer
you need to do array assignment inside loop, and bit reduced code like below:
<?php
$stmt = $pdo->prepare("SELECT pdimg1 FROM products WHERE pdcat LIKE 'fashion%'");
$stmt->execute();
$rows = $stmt->fetchAll();
$cats = array();
foreach ($rows as $row) {
$cats[] = array(
"title" => $row['title'];
"img" => $row['pdimg1'];
); // you can add as many column as you get from query
}
foreach ($cats as $cat): ?>
<?php echo $cat["title"]; ?>
<img src="images/<?php echo $cat["img"]; ?>">
<?php endforeach; ?>