- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema nella gestione degli ordini/fatture
-
Problema nella gestione degli ordini/fatture
Ciao a tutti, sto creando un piccolo gestionale per un magazzino. Per quanto riguarda le cose più semplici come aggiungere/modificare un cliente, un prodotto o una categoria di prodotto tutto ok. I problemi sorgono quando devo gestire gli ordini di vendita.
Spiegazione delle tabelle del database:
-Tabella Clienti (id_cliente, nome_cliente)
-Tabella Prodotti (id_prodotto,codice_prodotto,id_categoria_prodotto,nome_prodotto)
-Tabella Ordini (id_ordine, id_cliente, data_ordine)
-Tabella righe ordini (id_riga, id_ordine, id_prodotto, quantita)Ho cercato di normalizzare il database quanto più possibile, solo che ho alcune difficoltà ora che voglio aggiungere o modificare un ordine, teoricamente vorrei che venga mostrato prima il cliente e la data dell'ordine, poi invece i vari prodotti divisi per categoria:
Cliente_____________ data ordine_______________
Prodotti:
Categoria 1
-nome prodotto ___________
-nome prodotto2___________
Categoria 2
-nome prodotto 3___________E così dicendo, per aggiungere un ordine ho usato questo codice:
[PHP]
<div id="titolo">
<h1>Aggiungi ordine</h1>
</div>
<table><form method="POST" action="funzioni/funzione-modifica-aggiungi-ordine.php">
<tr>
<td>Nome Cliente</td>
<td>
<select name="id_cliente" id="id_cliente">
<option value="">Scegli il cliente...</option>
<?php
$indice = mysql_query("SELECT
*
FROM
clienti
ORDER
BY
nome_cliente
");
while($array=mysql_fetch_array($indice))
{
echo "<option value='".$array[id_cliente]."'>".$array[nome_cliente]."</option>";
}
?>
</select>
</td>
<td>Data Ordine</td>
<td><input type='text' name='data_ordine' id='data_ordine' size='25'></td>
</tr> <tr><td><h1>Prodotti</h1></td></tr>
<?php
$indice = mysql_query("SELECT
*
FROM
categorie_prodotti
");
while($array=mysql_fetch_array($indice))
{
echo "<tr><td><b>".$array[nome_categoria]."</b></td></tr>";
$indice2 = mysql_query("SELECT *
FROM
prodotti
WHERE
categoria_prodotto=$array[id_categoria]
");
while($array2=mysql_fetch_array($indice2))
{
echo "<input type='text' name='id_prodotto[".$array2[id_prodotto]."]' value='".$array2[id_prodotto]."' style='display:none' >";
echo "<tr><td>".$array2[nome_prodotto]."</td><td><input type='text' name='quantita_prodotto[".$array2[id_prodotto]."]' size='3' value='0'></td></tr>"; }
}
?>
</table>
<input class="bottone" type="submit" value="Salva ordine" name="aggiungi_ordine" >
</form>[/PHP]la pagina di destinazione del form è così
[PHP]
mysql_query("INSERT INTO
ordini VALUES
('','$_POST[id_cliente]','$_POST[data_ordine]')
")or die(mysql_error());$ultima_id_inserita_in_ordini = mysql_query("SELECT
id_ordine
FROM
ordini
ORDER BY id_ordine DESC
LIMIT 1
");//in questo modo tiro fuori solo una corrispondenza
$ultima_id=mysql_result($ultima_id_inserita_in_ordini, 0, 0);
$indice_prodotti = mysql_query("SELECT
id_prodotto
FROM
prodotti
");
$righe=mysql_num_rows($indice_prodotti);
for ($i=1; $i<=$righe;)
{while($array=mysql_fetch_array($indice_prodotti))
{mysql_query("INSERT INTO
righe_ordini
VALUES ('','$ultima_id','".$_POST[id_prodotto][$array[id_prodotto]]."','".$_POST[quantita_prodotto][$array[id_prodotto]]."')
")
or die(mysql_error());
}
$i++;
}
}[/PHP]
Ma non funziona!
Grazie a tutti!!