• User

    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!!