2012-04-06 9 views
0

私は現在、ユーザーが自分のシステムにアップロードする各用紙のすべての情報を保持する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"; 

     } 
     } 


?> 
' 
+1

'savedata()'に '$ _FILES'や' $ _POST'をグローバルにする必要はありません。そしてなぜあなたは '$ putItAt'をパラメータとして渡すのですか?コードをインデントする必要があります。 – cmbuckley

+0

アップロードが成功したと仮定すると、ある時点であなたの尻を噛んでしまいます。あなたがファイルで何かをする前に 'if($ _FILES ['uploadedfile'] ['error'] === UPLOAD_ERR_OK)'型チェックがあるはずです。また、衝突の検出もなく、サーバー上に既に存在していたファイルを幸いに上書きします。 –

答えて

関連する問題