我正在创建一个'买卖'网站作为PHP的初学者项目。
我有'advert_images',它是3列。
ID | advert_id |映像路径 的 _ | 的 的 __ _ | 的 的 __ _ ____
id列是AI,未使用。当我将数据放入数据库时,我从发布时获取了advert_id,并且只记录了它旁边的图像路径。
现在在广告页面上,我想输出这些图像...但我无法理解为此编写功能。我已经花了几个小时尝试和调整我在这个网站上看到的东西,但它不会点击...
function get_images($adverts_id){
$query = mysql_query("SELECT * FROM `advert_images` WHERE `advert_id` = " .$adverts_id . "");
while (($row = mysql_fetch_assoc($query)) !== false){
$row['image_path'];
echo ($row['image_path']);
}
}
这只是回应:
images/adverts/52f0f5f8cc2c099d0c.jpgimages/adverts/9f1579b69deb751161852.jpgimages/adverts/1d0d4ff0b2c40834c7aa.jpgimages/adverts/8ea518b393eebfd0cd0.jpgimages/adverts/3566957b0d3dfdfa3c.jpg
因此距离工作不到一百万英里,但我想要它,所以我可以单独调用每个图像......
每个广告都可以在advert_images中为其保存0-5张图片
非常感谢任何帮助。就像我说的那样,我只是陷入了困境中:(
答案 0 :(得分:1)
如果它是纯HTML并且您不需要表格或div标签,则这是更正的功能:
function get_images($adverts_id) {
if ($query = mysql_query("SELECT * FROM `advert_images` WHERE `advert_id` = '{$adverts_id}'")) {
if (mysql_num_rows($query) > 0) {
while ($row = mysql_fetch_assoc($query)) {
$output[] = $row["image_path"];
}
return $output;
}
}
}
然后,您可以执行以下操作:
foreach (get_images($adverts_id) as $image) {
print "<img src=\"{$image}\" alt=\"\">";
}
希望有所帮助;)
答案 1 :(得分:0)
或许这样的事情?
echo ("<img src='".$row['image_path']."'>");
答案 2 :(得分:0)
这应该将您的输出作为数组。
<?php
function get_images($adverts_id){
$query = mysql_query("SELECT * FROM `advert_images` WHERE `advert_id` = " .$adverts_id . "");
$return = array();
while (($row = mysql_fetch_assoc($query)) !== false){
$return[] = $row['image_path'];
}
return $return;
}
如果你想从中创建图像标签,你可以这样做:
$images = get_images($ad_id);
foreach($images as $image){
echo '<img src="'.htmlspecialchars($image).'"/>';
}
答案 3 :(得分:0)
首先,如果您只使用单个列,则不应选择所有列。其次,我建议改用PDO和准备好的声明:
function get_images(PDO $db, $adverts_id)
{
$stmt = $db->prepare('SELECT image_path
FROM advert_images
WHERE advert_id = :advert'
);
$stmt->execute(array(':advert' => $adverts_id));
return $stmt->fetchAll(PDO::FETCH_COLUMN, 0);
}
然后,称之为:
echo join('', array_map(function($imagePath) {
return sprintf('<img src="%s" />', htmlspecialchars($imagePath));
}, get_images($db, 123);