2013-04-02 42 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

不为你想。告诉我你是否有问题:) –

相关问题