在php中为一件事添加多个记录

在php中为一件事添加多个记录,php,mysql,Php,Mysql,我目前有一个名为paper的表,其中保存了用户上传到我的系统的每篇论文的所有信息。我还有一个名为“论文主题”的表格;这意味着从名为topic的表中保存paper\u id及其topic\u id。但是,我不确定如何使用PHP允许用户选择多个主题,然后将它们与paper\u id一起提交到paper\u topics表中 这是我上传论文的代码 if(!is_dir("paper")) { mkdir("paper"); } function savedata(){ global $_FI

我目前有一个名为
paper
的表,其中保存了用户上传到我的系统的每篇论文的所有信息。我还有一个名为“论文主题”的表格;这意味着从名为
topic
的表中保存
paper\u id
及其
topic\u id
。但是,我不确定如何使用PHP允许用户选择多个主题,然后将它们与
paper\u id
一起提交到
paper\u topics
表中

这是我上传论文的代码

if(!is_dir("paper")) {
mkdir("paper");

}
function savedata(){
    global $_FILES, $_POST, $putItAt;
    $sql = "INSERT INTO `internetcoursework`.`paper` (
    `paper_id`, 
    `username`,
    `title`, 
    `abstract`, 
    `filelocation`, 
    `date_added`) 
    VALUES (NULL,'".mysql_real_escape_string($_POST['username'])."' , '".mysql_real_escape_string($_POST['title'])."',
    '".mysql_real_escape_string($_POST['abstract'])."', '".mysql_real_escape_string($putItAt)."', CURDATE());";
    mysql_query($sql);

    }
$putItAt = "paper/".basename($_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FIleS['uploadedfile']['tmp_name'],$putItAt)) {
savedata();
header("location: listfiles.php");
echo "you have succesfully uploaded";

}else { 
if(copy($_FILES['uploadedfile']['tmp_name'],$putItAt)) {
savedata();
    header("location: listfiles.php");
    } else {
        echo "you totally failed";

        }
        }


?>
'

如果我正确理解您的请求(“选择多个主题,然后将它们与论文id一起提交到论文主题表”),基本思想是向表单中添加一个多选表单元素(如下所示),然后使用该发布值将行插入论文主题表中。您需要先插入纸张并获取纸张id()


这回答了你的问题吗

您不需要在
savedata()
中将
$\u文件
$\u POST
设置为全局文件。为什么不把
$putItAt
作为参数传递呢?你也应该缩进你的代码。假设上传成功,在某个时候你会被咬到屁股。应该有一个
if($\u FILES['uploadedfile']['error']==UPLOAD\u ERR\u OK)
在对文件执行任何操作之前,在那里的某个地方键入check。您还没有冲突检测,将很高兴覆盖服务器上已经存在的任何文件。