如果它们都具有相同的 id,如何将来自 sql 查询的图像存储在不同的变量下?

Posted

技术标签:

【中文标题】如果它们都具有相同的 id,如何将来自 sql 查询的图像存储在不同的变量下?【英文标题】:How do I store images from an sql query under different variables if they all have the same id? 【发布时间】:2016-10-26 20:00:10 【问题描述】:

我的问题是我正在开发一个房产网站,该网站将房产的多个图像存储在不同的表格中,而不是存储有关表格信息的表格。我使用属性表中的 property_id 作为 images 表中的外键。但是,我想检索所有这些图像并将它们存储为不同的变量,以便在其他地方使用,我在滑块中显示这些图像。我用来检索图像的代码是:

$image_result=mysqli_query($con,"SELECT * FROM tbl_images
    WHERE property_id ='$id' ");


while($row_i = mysqli_fetch_array($image_result))
       
        $image = $row_i['image'];
        $property_display = cl_image_tag($image, 
                    array( "width" => 800, "height" => 600, "crop" => "fill" ));

    

我想不出如何为每个不同的图像获取单独的变量,因为它们每个都有相同的属性 ID。我想使用这些变量的地方在这里:

<img class="mySlides" src="http://res.cloudinary.com/drfkdkwno/image/upload/v1476532177/<HERE>" style="width:100%">

任何帮助将不胜感激

【问题讨论】:

只使用一个数组。 while(...) $arr[] = cl_image_tag(...); 。您不想在循环中创建新变量。用新的任意+动态变量乱扔你的脚本从来都不是一个好主意。 您是否考虑过在您的图像表中添加另一个名为 id 的列。这可以是您图片的唯一 ID,您仍然可以使用 property_id 列找到特定的属性图片。 @Steve 我的表中确实有这个字段,但是如何使用它来控制变量,即如果图像 id 为 1,我怎么能说,$property_image = 然后是图像名称,并为查询中的每个结果循环此 如果你想在这里聊天...chat.***.com/rooms/126765/question-40271153 【参考方案1】:

在chat之后...

扩展您的代码,这里是获取数据的 php

// prepare array to hold image data
$property_display = [];

// query
$image_result = mysqli_query($con,"SELECT * FROM tbl_images WHERE property_id ='$id' ");

// process results
while($row_i = mysqli_fetch_array($image_result))    
    // get the image name 
    $image_name = $row_i['image_name'];
    // note the [] here - adding a new element to the array
    $property_display[] = cl_image_tag($image_name, 
                array( "width" => 800, "height" => 600, "crop" => "fill" ));


这里正在获取数据(也检查没有图像)

if ($property_display) 
    // iterate over array
    foreach ($property_display as $image) 
        // echo the image tag stored in the array
        echo $image;
    
 else 
    echo 'No property images!';

非常基本,但希望能满足您的需求。

在旁注中看看 PDO (http://php.net/manual/en/book.pdo.php) - 这确实应该是您与数据库交互的方式。尤其是避免 SQL 注入。

【讨论】:

所以第二次编辑有效,但编辑前第一次的格式是我想要的吗?但我似乎无法让该代码工作 我合并了两个编辑并得到了我的解决方案,感谢您的帮助 酷,很高兴它有帮助!【参考方案2】:

tbl_images 表需要一个主键。如果您没有其他任何东西,请使用代理主键(无论如何它都是最常用的)。换句话说 - 图像 ID,即自动增量或其他东西。通过该代理键识别图像。

你也可以使用行号,但这很不可靠。

【讨论】:

【参考方案3】:

使用这个方法:

$id = $_GET['id'];  and use is WHERE property_id =  '$id';

之后:

<img src = "<?php $row_I['image'];? >"   />

【讨论】:

以上是关于如果它们都具有相同的 id,如何将来自 sql 查询的图像存储在不同的变量下?的主要内容,如果未能解决你的问题,请参考以下文章

合并到一个具有相同 id 或属性 SQL Group_concat 的组没有帮助:(

如何在具有相同 ID 的列中选择不同的值然后删除它们 PHP SQL Server

来自具有相同列名的两个表的数据

将 SQL 数据插入具有相同 ID 的行中?

如果它们具有相同的行数,如何根据 order_id 内部连接表

在 sqlalchemy 中计算子查询