【问题标题】:PHP MySQL multiple image URL fields arrayPHP MySQL 多图像 URL 字段数组
【发布时间】:2012-06-02 02:36:31
【问题描述】:

在为朋友建立网站时,数据库中有一行包含 39 个图像字段。 该字段中是图像的名称(例如“my_image.jpg”)而不是图像本身(BLOB)。 即:image_01、image_02、image_03 等等。

我让 PHP 生成 while 循环并毫无问题地获取信息。 我正在尝试将所有图像放入一个数组中,以便可以将该行中的图片显示为图库。

我希望有人可以为我提供一条前进的道路,因为我已经尝试过但没有成功。

来自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"];
}

【问题讨论】:

  • 你从哪里得到$MEDIA_IMAGE_TEXT_00
  • 在数据库中连同所有图像
  • 将 whileloop 发布到推荐的代码中,而不是自己编写。
  • 发布了 while 循环 :)

标签: php mysql


【解决方案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 和一个图像数组;每张图片都包含位置(我猜)和标题/描述。

【讨论】:

  • 嗨,杰克,谢谢你的帖子,抱歉耽搁了……我已经添加了代码,它显示 [{"images":[["53384_2_IMG_00.jpg",""," ",""] 等... 将有一个剧本,希望它能奏效,但这是我需要的,所以我可以看到所以非常感谢你:) 我还在学习..lol
  • 嗨杰克,谢谢你的代码,它让我离我需要的地方更近了...你能指导我显示这样的代码吗[“propimages/53384_2_IMG_00.jpg”, "","",""],并且仅在字段具有图像 url 值时获取值:) 此时我让它显示 imgs ["propimages\/53384_2_IMG_00.jpg","",""," "],但如果属性只有 4 张图片,我会返回空白 ["","","",""] 感谢您抽出宝贵时间,非常感谢 Jack!
  • lmao 和我四处寻找更新按钮...哈哈没关系.. 非常感谢您的更新 Jack 您的明星 m8 我真的很感谢您的帮助和时间 :) 谢谢你这么多!!!
【解决方案2】:

为什么不在 while 循环中构建图像数组?

$images = array()

$i = 0;

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

你得到一个数组,你可以在 foreach 中使用并显示你的行。我认为按照应该有效的原则;)

【讨论】:

  • 或者:$key = 'MEDIA_IMAGE_0'.$i;然后 $images[] = $row[$key];
  • 代码缺少东西,几乎是伪代码。我们需要检查用户的代码
  • 是的,这是一个原则!正如所写。
猜你喜欢
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多