私は現在、ユーザーが自分のシステムにアップロードする各用紙のすべての情報を保持するpaper
というテーブルを持っています。私はpaper_topics
というテーブルも持っています。これは、というテーブルからpaper_id
とそのtopic_id
を保持することを意味します。しかし、私はどのようにユーザーが複数のトピックを選択してpaper_id
と一緒にpaper_topics
テーブルに提出することができるようにPHPを使用することができないのか分かりません。複数のレコードをPHPで1つ追加する
ここに私が論文をアップロードするためのコードがあります。私が正しくあなたの要求を理解していれば基本的な考え方は、フォームに複数選択フォーム要素を追加することです(「複数のトピックを選択し、paper_topicsテーブルにpaper_idと一緒にそれらを提出する」)
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";
}
}
?>
'
'savedata()'に '$ _FILES'や' $ _POST'をグローバルにする必要はありません。そしてなぜあなたは '$ putItAt'をパラメータとして渡すのですか?コードをインデントする必要があります。 – cmbuckley
アップロードが成功したと仮定すると、ある時点であなたの尻を噛んでしまいます。あなたがファイルで何かをする前に 'if($ _FILES ['uploadedfile'] ['error'] === UPLOAD_ERR_OK)'型チェックがあるはずです。また、衝突の検出もなく、サーバー上に既に存在していたファイルを幸いに上書きします。 –