如何在mysql中获取以逗号分隔格式存储在单行中的图像?

f0brbegy  于 2021-06-25  发布在  Mysql
关注(0)|答案(4)|浏览(229)

我上传了多个图像在数据库中的一列逗号分隔的格式。我首先为每个用户创建一个文件夹,并在该文件夹中存储图像。 car_images 是我的根目录吗 logged_in 将创建用户新目录。
我的图像以以下格式存储:

在这里, emp_code 是唯一的,我将此用作会话和每个用户的文件夹名称。如你所见 car_images 用于存储图像名称的列 , . 我使用下面的代码存储在文件夹和数据库中的图像。我不知道如何获取单个用户的所有图像。

$car_images_all="";
        for($i=0; $i<count($_FILES['car_images']['name']); $i++) 
        {
           $tmpFilePath = $_FILES['car_images']['tmp_name'][$i];    
           if ($tmpFilePath != "")
            {    
                if (!file_exists('car_images/'.$emp_code)) 
                    {
                        mkdir('car_images/'.$emp_code, 0777, true);
                    }
                $location = 'car_images/'.$emp_code.'/';
               $name = $_FILES['car_images']['name'][$i];
               $size = $_FILES['car_images']['size'][$i];

               list($txt, $ext) = explode(".", $name);
               $file= time().substr(str_replace(" ", "_", $txt), 0);
               $info = pathinfo($file);
               $filename = $file.".".$ext;
               if(move_uploaded_file($_FILES['car_images']['tmp_name'][$i], $location.$filename)) 
               { 
                  $car_images_all.=$filename.",";
               }
            }
        }
2ul0zpep

2ul0zpep1#

<?php 
 $x=0;                                                
 $car_img =explode(",",$car_images);
 foreach($car_img as $car_images{                                                  
 $x+=1;0
 ?>                                                 
 <?php   echo '<img src="'."images/".$car_images.'" width="70" height="70" />';?>
c8ib6hqw

c8ib6hqw2#

下面的代码将从表中获取数据并将图像保存在数组中。有关更多详细信息,请检查explode函数。

$query = "select car_images from table_name where emp_code = 'emp_code'";
$result = mysqli_query($connection,$query);
$row = mysqli_fetch_assoc($result);
$images = $row['car_images'];
$images = explode(',',$images);
foreach($images AS $image){
    echo '<img src="car_images/'.$emp_code.'/'.$image.'">';
}
inkz8wg9

inkz8wg93#

你可以用 GROUP_CONCAT() 功能

SELECT GROUP_CONCAT(car_images) FROM TableName

您还可以将groupby与emp\u代码、brand\u id或任何其他列一起使用,无论您的业务逻辑是什么。

SELECT GROUP_CONCAT(car_images) FROM TableName GROUP BY emp_code

SELECT GROUP_CONCAT(car_images) FROM TableName GROUP BY brand_id
42fyovps

42fyovps4#

首先,按emp\u代码从数据库中选择所有图像(因为您需要特定用户/emp的所有图像)。

select car_images from TableName where emp_code = $emp_code;

现在,您将得到一行或多行。因此,每行使用explode()函数将一个接一个的图像添加到数组中(即,如果行有多个以逗号分隔的图像名称)。根据您的操作选择使用数组。

相关问题