Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
[PHP][MySQL]如何在上传表单中为每个选定文件实现标题字段?_Php_Mysql - Fatal编程技术网

[PHP][MySQL]如何在上传表单中为每个选定文件实现标题字段?

[PHP][MySQL]如何在上传表单中为每个选定文件实现标题字段?,php,mysql,Php,Mysql,我是php/mysql新手,需要你的帮助 我有一个上传公式,可以将多个文件一个接一个地上传到数据库。 文件上传工作正常,但我想为每个选定的文件添加一个标题字段。我不知道如何在我的代码中实现这一点。 这是我的密码: $db = mysqli_connect("localhost", "root", "", "xy"); if (isset($_POST['upload_docs'])) { for($mi = 0; $mi < count($_FILES['sel_doc']['tm

我是php/mysql新手,需要你的帮助
我有一个上传公式,可以将多个文件一个接一个地上传到数据库。
文件上传工作正常,但我想为每个选定的文件添加一个标题字段。我不知道如何在我的代码中实现这一点。
这是我的密码:

$db = mysqli_connect("localhost", "root", "", "xy");
if (isset($_POST['upload_docs'])) {

   for($mi = 0; $mi < count($_FILES['sel_doc']['tmp_name']); $mi++) {

     $doc = $_FILES['sel_doc']['name'][$mi];
     $tmp_doc = $_FILES['sel_doc']['tmp_name'][$mi];
     $target = "doc_uploads/". basename($doc);

     if (move_uploaded_file($tmp_doc, $target)) {
       echo "Upload successfully!";
     }
     else {
       echo "Upload failed!";
     }
     $sql_f = "INSERT INTO docs (doc_file) VALUES ('$doc')";
     mysqli_query($db, $sql_f);
   }
}



<form method="POST" action="upload.php" enctype="multipart/form-data">
   <div>
      <input type="file" name="sel_doc[]">
      <input type="file" name="sel_doc[]">
      <input type="file" name="sel_doc[]">
      <input type="file" name="sel_doc[]">
      <input type="file" name="sel_doc[]">
   </div>

   <div id="upload_button">
    <button type="submit" name="upload_docs">upload</button>
   </div>
</form>
在我的原始代码中,我为1:n关系插入了两个表(因为“upload\u id”)。

HTML

<div>
<?php for ($i=0; $i<5; $i++){ ?>
    <b><?php echo $i ?></b><br>
    File: <input type="file" name="sel_doc[<?php echo $i ?>]"><br>
    Title: <input name="title[<?php echo $i ?>]"><br>
<?php } ?>
</div>



文件:您可能需要相应的文本输入字段,例如,
,然后通过索引将它们与文件关联起来。为了安全起见,您可以指定这些索引,例如
您将如何使其通过for循环?非常感谢!这太棒了!当我更有经验时,我想在最后做的安全工作。它只是编辑和添加代码,对吗?还是我必须从一开始就建立一个安全结构?@user10235329。。。切勿将安全视为事后考虑;)只要读一读mysqli/PDO,准备好带有绑定参数的语句,就不会出太大的错误(无论如何,在SQL注入方面)。但是以后可以添加所有内容吗?:)我是一名php&mysqli新手,我专注于构建我的第一个网站项目。但是,是的,我应该通过对准备好的声明的观察…关于上传表单的另一个问题,我必须更改什么,对于第一个文件,只有一个选择按钮+标题字段,当选择了一个文件并且标题字段中写有内容时,然后会添加一个新的按钮和标题字段等等。。。你有一个快速的解决方案吗?或者我应该为这个问题做一个新的“提问”吗?你必须用Javascript来做。我建议就此提出一个新问题
<div>
<?php for ($i=0; $i<5; $i++){ ?>
    <b><?php echo $i ?></b><br>
    File: <input type="file" name="sel_doc[<?php echo $i ?>]"><br>
    Title: <input name="title[<?php echo $i ?>]"><br>
<?php } ?>
</div>
<div>
    <b>0</b><br>
    File: <input type="file" name="sel_doc[0]"><br>
    Title: <input name="title[0]"><br>
    <b>1</b><br>
    File: <input type="file" name="sel_doc[1]"><br>
    Title: <input name="title[1]"><br>
    <b>2</b><br>
    File: <input type="file" name="sel_doc[2]"><br>
    Title: <input name="title[2]"><br>
    <b>3</b><br>
    File: <input type="file" name="sel_doc[3]"><br>
    Title: <input name="title[3]"><br>
    <b>4</b><br>
    File: <input type="file" name="sel_doc[4]"><br>
    Title: <input name="title[4]"><br>
</div>
$db = mysqli_connect("localhost", "root", "", "xy");
if (isset($_POST['upload_docs'])) {

   for($mi = 0; $mi < count($_FILES['sel_doc']['tmp_name']); $mi++) {

     $doc = $_FILES['sel_doc']['name'][$mi];
     $tmp_doc = $_FILES['sel_doc']['tmp_name'][$mi];
     $target = "doc_uploads/". basename($doc);
     $title = (isset($_POST['title'][$mi])?$_POST['title'][$mi]:"");

     if (move_uploaded_file($tmp_doc, $target)) {
       echo "Upload successfully!";
     }
     else {
       echo "Upload failed!";
     }
     $sql_f = "INSERT INTO docs (doc_file, title) VALUES ('$doc', '$title')";
     mysqli_query($db, $sql_f);
   }
}