PHP Select List - Insert multiple values in database

谁说我不能喝 提交于 2019-12-07 13:26:38

问题


I'm trying to insert multiple values in the database using select list. What I got so far:

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

Unfortunately it doesn't work, I tried to print $cars to check the resulted value. It prints "Array", and when I tried to print $cars[$i] it prints nothing.

Does anyone know what the problem is?


回答1:


There is an extra closing bracket that should be removed. You are not checking if your query was successful or not.

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

should be:

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

Since $cars is an array, you can print its content using print_r or var_dump:

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

Useful reading:
How to get useful error messages in PHP?
mysql_* functions are deprecated




回答2:


You have error $cars[$i]] and need change $cars[$i]

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

fix php for you with good 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}'"); 
    }


来源:https://stackoverflow.com/questions/15770011/php-select-list-insert-multiple-values-in-database

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!