代码之家  ›  专栏  ›  技术社区  ›  shieldcy

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

  •  3
  • shieldcy  · 技术社区  · 12 年前

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

    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]时,它什么也不打印。

    有人知道问题出在哪里吗?

    2 回复  |  直到 12 年前
        1
  •  1
  •   Community CDub    8 年前

    应该拆下一个额外的闭合支架。您没有检查查询是否成功。

    $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_r var_dump :

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

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

        2
  •  0
  •   khoa vo    12 年前

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