This is a continuation of the discussion at

[PHP Multiple Dropdown Box Form Submit To MySQL](https://stackoverflow.com/questions/944158/php-multiple-dropdown-box-form-submit-to-mysql)

which ended with the words: "Once you have the variables, it is trivial to create new rows." No doubt that's generally true, but apparently not for this learner... :-D

Given the following form:

```
    <form action="form.php" method="POST">
    <select name="colors[]" multiple="yes" size="2">
    <option>Red</option>
    <option>Blue</option>
    </select>
    <input type="submit" value="Go!"> 
    </form>

```

how do I create new rows? The following script

```
foreach($_POST['colors[]'] as $color) 
    {
        $id = mysqli_real_escape_string($link, $color);
        $sql = "INSERT INTO colors SET id = '$id'";
    }

```

raises the error

```
 Warning: Invalid argument supplied for foreach() in form.php on line ...

```

whereas the following

```
    $colors = $_POST['colors[]']; 
    for ($i = 0; $i < count($colors); $i++) 
        {
            $color = $colors[$i];
            $sql = "INSERT INTO colors SET id = '$color'";
        }

```

raises no errors but does no row creation.

What triviality am I missing here?