Список выбора PHP - вставка нескольких значений в базу данных

Я пытаюсь вставить несколько значений в базу данных, используя список выбора. Что я получил до сих пор:

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], он ничего не печатает.

Кто-нибудь знает, в чем проблема?


person shieldcy    schedule 02.04.2013    source источник


Ответы (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_r или var_dump:

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

Полезное чтение:
Как получить полезные сообщения об ошибках в PHP?
функции mysql_* устарели

person Jocelyn    schedule 02.04.2013
comment
я изменил его, но все еще не работает. он печатает массив и в базу данных вставляет 0 - person shieldcy; 02.04.2013
comment
это было действительно полезно. Моей ошибкой было имя переменной (в основном неправильная буква). Я проверил это с помощью print_r. Теперь все в порядке! Большое спасибо за твою помощь - person shieldcy; 02.04.2013

У вас ошибка $cars[$i]] и нужно изменить $cars[$i]

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

исправить php для вас с хорошим 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}'"); 
    }
person khoa vo    schedule 02.04.2013