Premetto che ho cercato la soluzione sul forum, ma non sono riuscito a risolvere. Spiego il problema: ho un campo select che permette di selezionare più opzioni. Ora sto cercando di inserire le varie opzioni selezionate (gli id) in una colonna del db.

Per chiarire meglio (in sintesi)
il db è così strutturato
codice:
Tabella 'prodotti'
----------------------------------------------
id_prodotto | nome_prodotto | colore_prodotto
----------------------------------------------
       1    |       auto     |         
       2    |       casa     |
----------------------------------------------
codice:
Tabella 'colori'
-----------------------------
id_colore     | nome_colore 
-----------------------------
       1      |     nero                  
       2      |     rosso
       3      |     giallo         
-----------------------------
Il codice sarebbe questo:

Codice PHP:
<?
//Definisco le stringhe
$prodotto = ($_POST['nome_prodotto']);
$colore = ($_POST['colore']);

//Menù colori
$menucolori_sql $data->query("SELECT * FROM colori ORDER BY colore_nome ASC");
while(
$menucolori_obj $data->estrai($menucolori_sql)){ 
  
$colore_id[] = $menucolori_obj->colore_id;
  
$colore_nome[] = $menucolori_obj->colore_nome;      
}

//Eseguo la query
if(isset($_POST['submit'])){  
$query_sql 'INSERT INTO prodotti (nome_prodotto, colore_prodotto) VALUES  ($prodotto, $colore);  
}
<?
//Form
<form>
Prodotto: <input name="nome_prodotto" type="text">
Colore: 
<select multiple name="colore">
  {section name="foo" loop=$colore} 
    <option value="{$id_colore[foo]}">{$nome_colore[foo]}</option>
  {/section}
</select>
<input name="submit" type="submit" value="inserisci">
</form>
Quando credo un nuovo prodotto e seleziono soltanto un colore va tutto bene, ma se seleziono più colori dal campo select, nel database viene archiviato solo il primo selezionato. So che dovrei utilizzare gli array, ma come?