PHP経由で生成されたhtmlフォームから取得した、投稿されたフォーム値をデータベースに挿入しようとしています。ただし、値は挿入されませんが、投稿された変数を印刷すると値が表示されます。これがコードです。
これはhtmlを出力するphpで書かれたフォームです
<?php
$find = mysql_query("SELECT file_name FROM chemlab_files WHERE student_id = '$student_id'") or die ("Could not search!");
while($row = mysql_fetch_array($find)){
$file_name = $row['file_name'];
$_SESSION['file_name'] = $file_name;
echo "<label class='checkbox'><input type='checkbox' name='file_name[]' value='{$file_name}'>$file_name</label><br><input type='text' name='description[]' value='' placeholder='description'>";
}
?>
これはフォームハンドラーです
//description
if(isset($_POST['description'])){
foreach($_POST['description'] as $description){
$file_name_description = mysql_real_escape_string($description);
//print_r($file_name_description);
}
}
$result = mysql_query("SELECT * FROM chemlab_files WHERE student_id='$student_id'") or die (mysql_error());
//if the student_id does exist, proceed
if($result==1){
//insert into chemlab_files update description
$insert_file_name_description = mysql_query("UPDATE chemlab_files SET description='$file_name_description' WHERE file_name='$file_name'");
}else{
echo 'something went wrong during sharing!';
exit();
変数 $file_name_description を出力できますが、データベースに挿入できません。
より明確にするために、フォームには複数のフィールドがあり、常に file_name (値が「$file_name」のチェックボックス) には説明フィールドがあります。$file_name と $description に対して print_r を実行すると、すべてのフィールドの値が取得されます。しかし、説明をデータベースに挿入しようとしても、何も起こりません。