简体   繁体   English

PHP选择列表 - 在数据库中插入多个值

[英]PHP Select List - Insert multiple values in database

I'm trying to insert multiple values in the database using select list. 我正在尝试使用选择列表在数据库中插入多个值。 What I got so far: 到目前为止我得到了什么:

HTML 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 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. 不幸的是它不起作用,我试图打印$ cars来检查结果值。 It prints "Array", and when I tried to print $cars[$i] it prints nothing. 它打印“阵列”,当我试图打印$ cars [$ i]时,它什么都不打印。

Does anyone know what the problem is? 有谁知道问题是什么?

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 : 由于$ cars是一个数组,您可以使用print_rvar_dump打印其内容:

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

Useful reading: 有用的阅读:
How to get useful error messages in PHP? 如何在PHP中获取有用的错误消息?
mysql_* functions are deprecated 不推荐使用mysql_ *函数

You have error $cars[$i]] and need change $cars[$i] 你有错误$ cars [$ i]]并且需要更改$ cars [$ i]

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

fix php for you with good sql 用很好的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}'"); 
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM