2013-02-25 97 views
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但不能插入到數據庫用PHP編寫的形式。

要更清楚地表單有多個字段,永遠file_name(複選框value =「$ file_name」)有一個描述字段。當我爲$ file_name和$ description執行print_r時,我得到了所有字段的值。但是,當我將描述插入到數據庫中時,什麼都不會發生。

+0

你似乎沒有在任何地方定義'$ file_name' – 2013-02-25 22:28:00

+0

你是否試過在列標題周圍放置''? – christopher 2013-02-25 22:28:03

+1

'$ file_name'的值是什麼?這可能是你的問題。 – mcryan 2013-02-25 22:28:27

回答

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

你需要這個。

+0

嗯...我怎麼定義每個描述的值,當形式是像「<?php echo」
「; ?>' – Nerdia 2013-02-25 23:33:34

+0

define hmz。你什麼意思 ?你想改變上述文字的價值嗎? – abc 2013-02-25 23:40:00

+0

當我把'價值='''它只會插入最後一個字段的值。我應該對每一個描述都有價值,但是因爲表單是由php生成的,所以我很困惑怎麼改變這個值......(我是一個初學者) – Nerdia 2013-02-25 23:44:06

0

如果你想創建一個新的數據庫記錄,不應該你的SQL像

INSTERT INTO chemlab_files SET (description, name) VALUES ('$file_name_description','$file_name') 
0

INSERT語句中我看到了兩個問題:

  1. 我不明白爲什麼文本在你的HTML輸入是一個數組(描述[])
  2. 我不明白爲什麼你在開始迭代它,你總是將$file_name_description設置爲最後一個值。您是否試圖將所有已發佈的description輸入附加到$file_name_description變量?如果是,那麼你應該寫的,而不是.==