2013-04-02 61 views
2

我試圖使用選擇列表在數據庫中插入多個值。我得到了什麼至今:PHP選擇列表 - 在數據庫中插入多個值

HTML

<form enctype="multipart/form-data" action="" method="post"> 
      <select name="cars[]" multiple="multiple" style="width:300px"> 
      <?php 
      $getcars = mysql_query("SELECT cars_id, cars_name FROM car"); 
      while ($row = mysql_fetch_assoc($getcars)) { 
       $car_id = $row['cars_id']; 
       $car_name = $row['cars_name']; 
      ?> 
      <option value="<?php echo $car_id ?>"><?php echo $car_name ?></option> 
      <?php } ?> 
      </select><br /> 
      <input type="submit" name="submit" value="Submit"/><br/> 
     </form> 

PHP

 $cars= $_POST['cars']; 
     echo $cars; 
     for($i = 0; $i < count($cars); $i++){ 
      echo $cars[$i]; 
      $carGroups = mysql_query("INSERT INTO car_groups VALUES('$company','$cars[$i]]')"); 
     } 

遺憾的是它不工作,我試圖打印$車檢查結果值。它打印「陣列」,當我試圖打印$汽車[$我]它不打印任何東西。

有誰知道問題是什麼?

回答

1

應該刪除一個額外的右括號。您不檢查您的查詢是否成功。

$carGroups = mysql_query("INSERT INTO car_groups VALUES('$company','$cars[$i]]')"); 

應該是:

$carGroups = mysql_query("INSERT INTO car_groups VALUES('$company','$cars[$i]')") or die(mysql_error()); 

因爲$汽車是一個數組,你可以使用print_rvar_dump打印內容:

print_r($cars); 
var_dump($cars); 

有用的書:
How to get useful error messages in PHP?
mysql_* functions are deprecated

+0

我改變,但仍無法正常工作。它打印「數組」,並在數據庫中插入0的 – shieldcy

+0

閱讀我更新的答案。 – Jocelyn

+0

這真的很有用。我的錯誤是一個變量名(基本上是一個錯誤的字母)。我用print_r檢查過它。現在很好!非常感謝您的幫助 – shieldcy

0

你有錯誤$汽車[$ i]],需要改變$汽車[$ i]

$carGroups = mysql_query("INSERT INTO car_groups VALUES('$company','$cars[$i]]')"); 

修復PHP爲您提供良好的SQL

$cars= $_POST['cars']; 
    echo $cars; 
    foreach($cars as $i => $cars_name){ 
     echo $cars_name; 
     $carGroups = mysql_query("INSERT INTO car_groups SET `fieldcompany`='{$company}', `fieldcars`='{$cars_name}'"); 
    } 
+0

請問,謝謝!這似乎比我的確更好。 – shieldcy

+0

不爲你想。告訴我你是否有問題:) –

相關問題