0

我正在创建一个“买卖”网站作为 PHP 的初学者项目。

我有一个“advert_images”,它是 3 列。

身份证 | advert_id | path_to_image _ |_ _ |_ _ ____

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 张图片

任何帮助将不胜感激。就像我说的那样,我只是卡住了,没有新的想法:(

4

4 回答 4

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=\"\">";
}

希望有帮助;)

于 2013-07-19T07:37:57.603 回答
0

大概是这样的?

 echo ("<img src='".$row['image_path']."'>");
于 2013-07-19T07:37:17.200 回答
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).'"/>';
}
于 2013-07-19T07:44:56.173 回答
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);
于 2013-07-19T08:02:13.680 回答