Magari è una stupidaggine... ma la dico lo stesso 
Si potebbe usare un contatore $i che incrementi ad ogni ciclo e poi lo inseririsci nella tabella nel campo id_ordine
Codice PHP:
$i=0; //inizializzo un contatore
foreach($array as $key => $value) {
$piatto_ordinato = $value["piatto"];
$id_piatto = $value["id piatto"];
$quantita = $value["quantita"];
$prezzo_singolo = $value["prezzo singolo"];
$prezzo_totale = $value["prezzo totale"];
$query = "INSERT INTO ordini (id_ordine, id_piatto, piatto_ordinato, quantita_ordinata,
prezzo_singolo, prezzo_totale) VALUES ($i, $id_piatto, '$piatto_ordinato', $quantita, $prezzo_singolo, $prezzo_totale)";
if ($db->GetDatabaseResult($query)) {
echo "INSERIMENTO AVVENUTO";
i++; //questo vedi se metterlo solo dopo un'esecuzione riuscita o prima...
}
}
Non ho la possibilità di provarlo, vedi se funziona...