Ciao !
Non so se hai risolto ma io farei così:
Visualizzazione piatti
[PHP]
<?php
include '../config.php';
$sql = "SELECT * FROM piatti";
$ret = mysqli_query( $db, $sql );
$html_form_piatti = '';
$html_hidd_id_piatti = '';
while ($row = mysqli_fetch_assoc($ret))
{
$html_hidd_id_piatti .= ( $html_hidd_id_piatti == '' ) ? $row['id'] : ',' . $row['id'];
$html_form_piatti .= "\r\n <label>{$row['nome']}</label><br />quantita': <input type='text' name='form_qt_{$row['id']}' value='0' /><br /><br /> \r\n";
}
?>
<form method="post" action="insert.php">
<input type="hidden" name="form_piatti_id_list" value="<?php echo $html_hidd_id_piatti; ?>" />
<?php echo $html_form_piatti; ?>
<label>Tavolo</label><br />
<input name="form_tavolo" type="text"><br /><br />
<input name="submit" type="submit" value="invia">
</form>
[/PHP]
questo ti crea un html tipo questo (ovviamente da sistemare graficamente) (nel mio caso avevo due soli piatti di test ^_^)
[HTML]
<form method="post" action="insert.php">
<input type="hidden" name="form_piatti_id_list" value="1,2" />
<label>pasta ragu</label><br />quantita': <input type='text' name='form_qt_1' value='0' /><br /><br />
<label>riso ragu</label><br />quantita': <input type='text' name='form_qt_2' value='0' /><br /><br />
<label>Tavolo</label><br />
<input name="form_tavolo" type="text"><br /><br />
<input name="submit" type="submit" value="invia">
</form>
[/HTML]
dove hai in pratica una variabile che contiene la lista di "id piatti" di nome "form_piatti_id_list" e le variabili con le quantita per piatto che hanno nome tipo "form_qt_1" dove quel "1" è l'ID del piatto.
Lato salvataggio
[PHP]
<?php
include '../config.php';
if( isset($_POST['form_piatti_id_list']) )
{
$array_piatti = explode( ',' , $_POST['form_piatti_id_list'] );
$tavolo = (int)$_POST['form_tavolo'];
foreach( $array_piatti as $id_piatto )
{
// echo $id_piatto . ' - ';
if( isset($_POST['form_qt_' . $id_piatto]) and (int)$_POST['form_qt_' . $id_piatto] > 0 )
{
$quantita = $_POST['form_qt_' . $id_piatto];
$sql = "INSERT INTO ordinazioni (piatto,quantita,tavolo) VALUES ('$id_piatto','$quantita','$tavolo')";
//echo $sql;
$ret = mysqli_query( $db, $sql );
}
}
}
?>
[/PHP]
praticamente ho prima verificato che ci fosse qualcosa in $_POST (per evitare che la pagina venga chiamata erroneamente senza dati dando errore). Poi prendo e creo un array dei piatti che erano presenti nella pagina precedente (quella con il form). lo faccio usando quella variabile "form_piatti_id_list". Ora che so che piatti erano presenti nella pagina prima, posso controllare se, per ogni piatto, la sua quantita' era stata settata ad un valore maggiore di 0 . SE è cosi', allora quel piatto è stato scelto dal cliente e quindi devo salvare il relativo record tramite la INSERT.
Lo script puo' essere migliorabile in vari modi ovviamente pero' spero possa essere utile come idea di base