我在数据库中以逗号分隔格式上传多个图像。我首先为每个用户创建一个文件夹,并在该文件夹中存储图像。 car_images
是我的根目录,其名称为logged_in
用户新目录将创建。
在这里,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.",";
}
}
}
答案 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" />';?>