【问题标题】:PHP Select List - Insert multiple values in databasePHP Select List - 在数据库中插入多个值
【发布时间】:2013-03-24 02:17:44
【问题描述】:

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

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 来检查结果值。它打印“Array”,当我尝试打印 $cars[$i] 时它什么也没打印。

有谁知道问题出在哪里?

【问题讨论】:

    标签: php mysql selectlist multiple-value


    【解决方案1】:

    您有错误 $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}'"); 
        }
    

    【讨论】:

      【解决方案2】:

      应该删除一个额外的右括号。您没有检查您的查询是否成功。

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

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

      【讨论】:

      • 我改了,但还是不行。它打印“数组”并在数据库中插入 0
      • 这真的很有用。我的错误是变量名(基本上是一个错误的字母)。我用 print_r 检查了它。现在好了!非常感谢您的帮助
      猜你喜欢
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 2015-07-02
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多