3

我正在尝试使用选择列表在数据库中插入多个值。到目前为止我得到了什么:

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]]')"); 
        }

不幸的是,它不起作用,我尝试打印 $cars 来检查结果值。它打印“数组”,当我尝试打印 $cars[$i] 时,它什么也没打印。

有谁知道问题是什么?

4

2 回答 2

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()); 

由于 $cars 是一个数组,您可以使用print_rvar_dump打印其内容:

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

有用的阅读:
如何在 PHP 中获取有用的错误信息?
mysql_* 函数已弃用

于 2013-04-02T17:08:43.797 回答
0

您有错误 $cars[$i]] 需要更改 $cars[$i]

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

用好的 sql 为你修复 php

   $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}'"); 
    }
于 2013-04-02T17:13:47.407 回答