2

我正在尝试将发布的表单值插入到数据库中,这些值是从通过 php 生成的 html 表单中检索的。但是它没有插入值,但是当我打印发布的变量时我确实看到了这些值。这是代码。

这是用php编写的输出html的表格

<?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 和 $description 执行 print_r 时,我得到了所有字段的值。但是,当我将描述插入数据库时​​,什么也没有发生。

4

3 回答 3

0

如果您正在尝试创建新的数据库记录,您的 sql 不应该是 INSERT 语句,如

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

我看到两个问题:

  1. 我不明白为什么您的 HTML 中的文本输入是一个数组(描述 [])
  2. 我不明白为什么你一开始就迭代它,而且你总是将它设置$file_name_description为最后一个值。您是否尝试将所有发布description的输入附加到$file_name_description变量?如果是,那么你应该写.=而不是=
于 2013-02-25T22:32:28.053 回答
0
INSERT INTO table_name 
VALUES (value1, value2, value3,...) 

你需要这个。

于 2013-02-25T23:11:15.600 回答