3

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?

2 Answers 2

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

Sign up to request clarification or add additional context in comments.

2 Comments

i changed it but still not working. it prints "Array" and in the database it inserts 0's
that was really useful. My mistake was a variable name (a wrong letter basically). I checked it with print_r. Now it's fine! Thanks a lot for your help
0

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.