如何在PHP中创建循环?上传媒体按钮并存储到MySQL中,然后在单独的页面上显示

问题描述

我是社区的新手,我正在尽我所能。我一头扎进了一些 HTML 和 PHP 编程,并一直在使用 MysqL

问题:基本上,我试图创建一个本质上“循环”的上传媒体按钮,允许用户上传任意数量的图像。此图像需要成功插入到数据库MysqL)中,并在查询数据库显示在单独的页面上。我会用图片分解成步骤,给大家一个直观的感受!

  1. 图像编号 1 显示了需要“上传图像”的区域,当然,这无关紧要,因为它在代码方面无关紧要,但这就是它看起来像是在用户方面。我正在寻找允许将多个图像上传数据库并与inspectionID(主键)相关联的代码here is the image of the user interface where the button will be 图像编号2 是表单和表格的代码媒体类型当然只是一个替身,但不连接到数据库。可能有很多原因,但是,你知道。 this is where the code I am requesting will go

  2. 系统需要将图像存储在数据库中并与inspectionID 主键相关联。我对 MysqL 的经验有限,所以我不太确定图像类型需要是什么 - 这是我的数据库图片,如果我需要在这里进行任何更改,请告诉我。 current database table structure

  3. 最后,这是查询表页面。此处是否显示图像缩略图无关紧要,只要它们出现在此查询表格的页面上,即可完成我的系统。 This is where the images need to be displayed or available for download

总的来说,我正在寻找三个方面的信息。用于创建将图像上传数据库的循环插入按钮的代码,我需要在数据库中更改以接受上传的图像/显示它们,以及显示图像缩略图/下载表格中的图像所需的代码。>

感谢您抽出时间阅读本文!我知道我是新来的,所以我确定我犯了很多编程罪,但请耐心等待!我也是编程新手,但我很想学习 - 谢谢!

解决方法

  1. DB 最好删除字段 Media 并再制作一张带有图像的表格。它将具有如下结构:ImgIdImgPath(文件名)、InspectionID。每个文件都有唯一的名称,在服务器上下载后将给出该名称。我们将这个名称保存在我之前描述的表 Media 中。此外,我们会将每张图片与一些检查相关联,因此我们还需要保存检查 ID。
  2. HTML

<form method='post' action='' enctype='multipart/form-data'>
 
     <input type="file" name="file[]" id="file" multiple>
     <input type='submit' name='submit' value='Upload'>

</form>

使用此表单,您可以上传多张图片。

  1. PHP
<?php
$db = mysqli_connect(*some db connect*);
if(isset($_POST['submit'])){
 $countfiles = count($_FILES['file']['name']);
 for($i=0;$i<$countfiles;$i++){
   $temp = explode(".",$_FILES["file"]["name"][$i]);
   $newfilename = microtime(true)*1000 . '.' . end($temp);
   move_uploaded_file($_FILES['file']['tmp_name'][$i],'upload/'.$newfilename);
   mysqli_query($db,"INSERT INTO `Media`(`ImgPath`,`InspectionID`) VALUES ($newfilename,*You also need to make new row in the main table and write InspectionID to what the image relates to*)"); 
 }
} 
?>

所以现在你已经上传了几张图片到你的服务器,你需要在某处展示它们。

例如您显示 ID 为 6 的检查。您可以轻松地从主表中选择数据,但图像保存在表 Media 中。获取它们的最简单方法是编写 SELECT * FROM Media WHERE InspectionID = 6

以P.S 6为例,所以你需要写你的InspectionID,取自DB。

祝你好运!