2

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 を実行すると、すべてのフィールドの値が取得されます。しかし、説明をデータベースに挿入しようとしても、何も起こりません。

4

3 に答える 3

0
INSERT INTO table_name 
VALUES (value1, value2, value3,...) 

あなたはこれを必要とします。

于 2013-02-25T23:11:15.600 に答える
0

2 つの問題があります。

  1. HTML のテキスト入力が配列 (description[]) である理由がわかりません
  2. $file_name_description最初に繰り返し、常に最後の値に設定する理由がわかりません。投稿されたすべてdescriptionの入力を$file_name_description変数に追加しようとしていますか? はいの場合は、.=代わりに書く必要があります=
于 2013-02-25T22:32:28.053 に答える
0

新しいデータベース レコードを作成しようとしている場合、SQL は次のような INSERT ステートメントであってはなりません。

INSTERT INTO chemlab_files SET (description, name) VALUES ('$file_name_description','$file_name')
于 2013-02-25T22:29:24.453 に答える