如果它们都具有相同的 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之后...
扩展您的代码,这里是获取数据的 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