0

PHP の初心者プロジェクトとして、「売買」の Web サイトを作成しています。

「advert_images」があります。3 列です。

ID | 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

まず、1 つの列しか使用しない場合は、すべての列を選択しないでください。次に、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 に答える
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 に答える