0

友人のウェブサイトを構築する際、データベースには 39 の画像フィールドを含む行があります。フィールドには、画像自体 (BLOB) ではなく、画像の名前 (「my_image.jpg」など) が表示されます。つまり、image_01、image_02、image_03 などです。

PHP で while ループを生成し、問題なく情報を取得しています。すべての画像を 1 つの配列にまとめて、その 1 つの行の画像をギャラリーとして表示できるようにしようとしています。

私が成功しなかったので、誰かが私に前進する方法を提供してくれることを願っています。

while ループから:

$MEDIA_IMAGE_00 = $row["MEDIA_IMAGE_00"];
$MEDIA_IMAGE_01 = $row["MEDIA_IMAGE_01"];
$MEDIA_IMAGE_02 = $row["MEDIA_IMAGE_02"];

私はエコーアウトする必要があります

["propimages/$MEDIA_IMAGE_00", "", "", "$MEDIA_IMAGE_TEXT_00"],
["propimages/$MEDIA_IMAGE_01", "", "", "$MEDIA_IMAGE_TEXT_01"],
["propimages/$MEDIA_IMAGE_02", "", "", "$MEDIA_IMAGE_TEXT_02"]

ギャラリーに表示します。

編集:

while($row = mysql_fetch_array($sqlSearch)){ 
   $propid = $row["propid"];
   $MEDIA_IMAGE_00 = $row["MEDIA_IMAGE_00"];
   $MEDIA_IMAGE_01 = $row["MEDIA_IMAGE_01"];
   $MEDIA_IMAGE_02 = $row["MEDIA_IMAGE_02"];

   $MEDIA_IMAGE_33 = $row["MEDIA_IMAGE_33"];
   $MEDIA_IMAGE_34 = $row["MEDIA_IMAGE_34"];
   $MEDIA_IMAGE_35 = $row["MEDIA_IMAGE_35"];
}
4

2 に答える 2

1

$propidこれが行自体を識別するものであり、「MEDIA_IMAGE_TEXT」が同じ行で使用可能であると想定しています。

$properties = array();
while ($row = mysql_fetch_array($sqlSearch)) {
    $propid = $row["propid"];
    $images = array();
    for ($i = 0; $i <= 35; ++$i) {
        $imageId = "MEDIA_IMAGE_" . str_pad($i, 2, '0', STR_PAD_LEFT);
        if ($row[$imageId]) {
            $images[] = array(
                $row[$imageId],
                '',
                '',
                $row["MEDIA_IMAGE_TEXT_" . str_pad($i, 2, '0', STR_PAD_LEFT)],
            );
        }
    }
    $properties[] = array(
        'id' => $propid,
        'images' => $images,
    );

    echo json_encode($properties);

プロパティのリストを生成し、それぞれにIDと画像の配列があります。各画像は、場所(おそらく)とタイトル/説明で構成されています。

于 2012-05-27T09:55:34.760 に答える
0

whileループで画像の配列を作成してみませんか?

$images = array()

$i = 0;

While(...) {
$images[] = $row["MEDIA_IMAGE_0$i"];
$i++;
[...]
}

foreachで使用できる配列を取得し、行を表示します。うまくいくはずの原則について、私は思います;)

于 2012-05-27T08:17:42.433 に答える