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

时间:2018-05-07 08:45:16

标签: php mysql file-upload

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

我的图片以下列格式存储: enter image description here

在这里,emp_code是唯一的我将其用作SESSION和每个用户的文件夹名称。 如您所见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.",";
               }
            }
        }

4 个答案:

答案 0 :(得分:2)

首先, 通过emp_code从数据库中选择所有图像(如您想要的特定用户/ emp的所有图像)。

select car_images from TableName where emp_code = $emp_code;

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

答案 1 :(得分:2)

下面的代码将从表中获取数据并将数据保存在数组中。有关详细信息,请查看爆炸功能。

$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.'">';
}

答案 2 :(得分:1)

您可以使用GROUP_CONCAT()功能

SELECT GROUP_CONCAT(car_images) FROM TableName

无论您的业务逻辑是什么,您都可以使用group by emp_code或brand_id或任何其他列。

SELECT GROUP_CONCAT(car_images) FROM TableName GROUP BY emp_code

OR

SELECT GROUP_CONCAT(car_images) FROM TableName GROUP BY brand_id

答案 3 :(得分:0)

 <?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" />';?>