Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    calcoli su valori di tabelle diverse in db mysql

    Buongiorno ... sono giorni che rischio di bruciare quello che rimane del mio ultimo neurone
    Ho provato tutto quello che posso provare non essendo ad un livello avanzato nella conoscenza di php ... Vi espongo il problema

    Ho due tabelle:

    ARTICOLI:
    articolo
    qt_articolo
    reso
    (contenente soltanto 3 articoli: “A” id 1 “B” id2 “C”id3)
    CLIENTI:
    dati anagrafici
    fornitura A
    fornitura B
    fornitura C

    Quando, in una certa data ho un appuntamento con un cliente, immetto nei form corrispondenti le quantità delle forniture relative agli articoli di cui ha bisogno (es: art A = 5, art B =15, art C= 7) .
    A questo punto, tramite una query di tipo INSERT questi valori vengono memorizzati nella tabella ‘clienti’ alla data dell’appuntamento.

    La domanda è: Come posso fare in modo che, oltre all’inserimento nella tabella ‘clienti’ i dati relativi alle forniture degli articoli A,B,C vadano a sottrarsi nei relativi campi della tabella ‘articoli’ scalando così le qt_articolo ?

    in poche parole un semplice scarico di magazzino dove la quantità dell'articolo consegnato al cliente va a sottrarsi con la quantità della giacenza che risiede in una tabella diversa. In teoria dovrebbe essere semplice ma ho provato di tutto senza risultati.

    Spero che qualcuno possa darmi una mano

    Intanto 1000 grazie x l'attenzione e buona giornata a tutti

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Puoi farlo con 3 query UPDATE.
    Seguendo il tuo esempio:
    UPDATE articoli SET qt_qrticolo = qt_articolo - $qt_articolo1 WHERE articolo = $id_articolo1
    UPDATE articoli SET qt_qrticolo = qt_articolo - $qt_articolo2 WHERE articolo = $id_articolo2
    UPDATE articoli SET qt_qrticolo = qt_articolo - $qt_articolo3 WHERE articolo = $id_articolo3

    scritto in questo modo per essere esplicativo, ma chiaramente ti conviene fare un ciclo da strutturare a seconda di come hai disponibili i dati sugli articoli.

    Ricordati che tutto ciò, INSERT e UPDATE, vanno eseguite all'interno di una transazione, altrimenti rischi che se qualcosa va storto le rimanenze in magazzino risultino sbagliate, per esempio esegui l'insert, i primi 2 update e poi il terzo fallisce, la quantità del terzo articolo sarà sbagliata.
    Se usi una transazione invece, in caso di errore, torna tutto come se non fosse successo niente.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Puoi farlo con 3 query UPDATE.
    Seguendo il tuo esempio:
    UPDATE articoli SET qt_qrticolo = qt_articolo - $qt_articolo1 WHERE articolo = $id_articolo1
    UPDATE articoli SET qt_qrticolo = qt_articolo - $qt_articolo2 WHERE articolo = $id_articolo2
    UPDATE articoli SET qt_qrticolo = qt_articolo - $qt_articolo3 WHERE articolo = $id_articolo3

    scritto in questo modo per essere esplicativo, ma chiaramente ti conviene fare un ciclo da strutturare a seconda di come hai disponibili i dati sugli articoli.

    Ricordati che tutto ciò, INSERT e UPDATE, vanno eseguite all'interno di una transazione, altrimenti rischi che se qualcosa va storto le rimanenze in magazzino risultino sbagliate, per esempio esegui l'insert, i primi 2 update e poi il terzo fallisce, la quantità del terzo articolo sarà sbagliata.
    Se usi una transazione invece, in caso di errore, torna tutto come se non fosse successo niente.
    Ho già provato così, però mi stai facendo venire un dubbio ...
    tu mi hai consigliato questa query:
    UPDATE articoli SET qt_qrticolo = qt_articolo - $qt_articolo1 WHERE articolo = $id_articolo1
    quella che ho provato (una di quelle .....) era:
    UPDATE articoli SET qt_qrticolo = qt_articolo - $forn_bracc WHERE articolo = $id 1
    dove 'forn_bracc' era il nome del record nel cui form si inserisce la qt di bracciali consegnati al cliente presa dalla tabella 'vendite' e qt_articolo la qt di 'giacenza magazzino' presa dalla tabella "articoli"

    Pensi che l'errore sia nel fatto che gli ho dato nomi diversi o qualcosa del genere?

    Per quanto riguarda il consiglio sulle transazioni è molto prezioso, non ci avevo pensato

    Grazie 1000 x la risposta,

    ciao

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il mio qt_qrticolo è stato un errore di battitura, ovviamente deve essere il nome effettivo del campo del db.
    In che modo ti da problemi? Il conto viene sbagliato oppure ti da errore?

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Il mio qt_qrticolo è stato un errore di battitura, ovviamente deve essere il nome effettivo del campo del db.
    In che modo ti da problemi? Il conto viene sbagliato oppure ti da errore?
    fungeeeeeee !!!!!!

    grazie grazie grazie grazie !!!!!!!!!

    spero un giorno di poter ricambiare !

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.