AIUTO.... UPDATE con Mysql e PHP

di il
12 risposte

AIUTO.... UPDATE con Mysql e PHP

Buongiorno,
sono nuovissimo nel Forum.
Chiedo aiuto in quanto sto creando un piccolo e banalissimo gestionale di carico, scarico e ordine di farmaci all'interno di una struttura sanitaria.
Spiego rapidamente il problema:
- Ho un DB con all'interno delle tabelle (armadio e ordine, ecc.....)
- Con una SELECT vado a prelevare i dati della tabella armadio in una pagina php dove vengono stampati i farmaci su ogni riga.. e qui tutto ok...
- Alla fine di ogni riga all'interno della pagina ordine.php ho inserito un input per inserire le scatole da ordinare.
- Vorrei che tramite submit all'interno della tabella ordine del mio DB andassero ad inserirsi le quantità di ogni farmaco inserite dalla pagina ordine.php.

Non capisco come devo impostare la query.
In questo momento riesco ad inserire solo l'input dell'ultima riga.
Spero di essermi spiegato

12 Risposte

  • Re: AIUTO.... UPDATE con Mysql e PHP

    Ciao devi eseguire l’update query dentro foreach. Qui trovi una spiegazione https://stackoverflow.com/questions/36124372/how-to-update-multiple-mysql-fields-with-an-update-button-using-php/36124568
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Se ti posto il codice mi daresti una mano????
    A volte non ci capisco nulla....
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Pagina ordine.php


    <form method="post" action="input.php">

    <?php





    $q = $x->query("SELECT id, descrizione, aic, principio_attivo, divisibile, u_misura, pz_conf, tot_conf, cod_art, (pz_conf*tot_conf) AS u_presenti FROM armadio ORDER BY descrizione ASC");//magedit.php?id='.$d['id'].'
    while($row = $q->fetch_array()){
    echo '<tr>
    <td>'.$row['id'].'</td>
    <td>'.$row['aic'].'</td>
    <td>'.$row['descrizione'].'</td>
    <td>'.$row['principio_attivo'].'</td>
    <td>'.$row['divisibile'].'</td>
    <td>'.$row['u_misura'].'</td>
    <td>'.$row['pz_conf'].'</td>
    <td>'.$row['tot_conf'].'</td>
    <td><input type="text" name="conf_ord" id="conf_ord" value=""></td>
    <td><input type="hidden" name="cod_art" id="cod_art" value="'.$row['cod_art'].'"></td>
    <td><input type="hidden" name="id" id="id" value="'.$row['id'].'"></td>
    <td><input type="hidden" name="aic" id="aic" value="'.$row['aic'].'"></td>
    <td><input type="hidden" name="descrizione" id="descrizione" value="'.$row['descrizione'].'"></td>
    </tr>

    ';
    }
    ?>



    <td align="right"><input type="submit" name="submit" value="Invia ordine"></td>

    </form>








    Pagina input.php

    <?php
    error_reporting(E_ALL ^ E_DEPRECATED);
    //la stringa mysql_connect deve essere compilata con i dati relativi al proprio database
    //HOST = IP server Mysql
    //USER = Nome utente databse
    //PASSWORD = Password utente databse
    mysql_connect("xxxxxxx","xxxxxx","xxxxx");//database connection
    // Qui sotto al posto di NOME_DATABASE, inserite il nome del vostro DB
    mysql_select_db("xxxxxxx");

    // recupero i valori
    $id = $_POST['id'];
    $conf_ord = $_POST['conf_ord'];


    //inserting data order

    $toinsert = "UPDATE ordine SET conf_ord='$conf_ord' WHERE id=$id";


    //declare in the order variable
    $result = mysql_query($toinsert); //order executes
    if($result){
    echo("<br>Inserimento avvenuto correttamente");
    } else{
    echo("<br>Inserimento non eseguito");
    }


    ?>
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Vi prego....

    Aiutatemiiiiiiiii....
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Ciao,
    benvenuto nel forum!

    Il codice che hai scritto puoi metterlo tra i tag CODE. Così è più semplice leggere.

    Cos'è che non riesci a fare?
    Ci spieghi i vari campi che richiami dal DB... A quale valore fa riferimento? Id è chiaro... Il resto vado per intuito perché i campi non sono parlanti ma abbreviazioni. Tipo aic cos'è pz pezzo o prezzo?

    Ciao
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Ciao Cali,
    cerco di spiegare più dettagliatamente possibile.
    Nella pagina ordine.php faccio una SELECT della tabella armadio dove all'interno ho vari campi: id, descrizione, aic (codice a barre scatola farmaco), principio_attivo, divisibile, u_misura, pz_conf (pezzi presenti nella confezione), tot_conf (totale di confezioni presenti in armadio), cod_art (codice articolo), u_presenti (totale delle pastiglie presenti) e fino a qui tutto ok. come puoi vedere dal codice, nella stampa della tabella "armadio" come ultimo campo ho inserito un input dove andrebbero inserite le quantità di confezioni da ordinare chiamato "conf_ord".
    Vorrei che tramite submit all'interno della tabella "ordine" del mio DB andassero ad inserirsi le quantità di ogni farmaco inserite dalla pagina ordine.php. Questo avviene tramite form con il fle input.php che vedi riportato nella risposta precedente.
    Attualmente riesco ad inserire nel campo "conf_ord" nella tabella ordine solo l'ultima riga.

    Tabella ARMADIO:
    id
    descrizione
    aic
    principio_attivo
    divisibile
    u_misura
    pz_conf
    tot_conf
    cod_art
    pz_conf
    tot_conf

    Tabella ORDINE:
    id
    descrizione
    pz_conf
    tot_conf
    conf_ord

    Spero di essermi spiegato.
    Grazie mille
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Ti da problemi la query?

    Prova un po' così:
    
    $toinsert = "UPDATE ordine SET conf_ord='".$conf_ord."' WHERE id=".$id;
    
    Ti faccio delle osservazioni poi vedi tu:
    1. controlla se il valore è un numero intero, una confezione è 1 e non 1,2 o 1.5.
    2. se per esempio l'utente inserisce "2,3" non è intero tu avvii lo script in php fai il controllo vedi che il valore è errato blocchi lo script perché il valore inserito non è intero. Devi tornare indietro alla pagina dove hai la lista.

    Ti dico la mia poi vedi tu...

    Utilizzerei ajax con delle librerie/framework jquery o vue o react ecc... in più metterei il controllo dei valori inseriti anche in js, lato client oltre lato server.

    Ciao
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Aggiungo: io utilizzerei PDO e non mysql o mysqli
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Mettendo quello che hai scritto tu mi inserisce solo il valore dell'ultima riga...
    
    $toinsert = "UPDATE ordine SET conf_ord=".$conf_ord." WHERE id=".$id."";
    
    Mi hai dato una SUPER SPIEGAZIONE ma le mie competenze non arrivano a tanto...
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Vorrei che tutti i campi conf_ord "0" delle rispettive righe venissero inserite nella tabella ordine assieme ad: id, aic, descrizione, ecc....
    Ti allego l'immagine

    ordine.jpg
    ordine.jpg

  • Re: AIUTO.... UPDATE con Mysql e PHP

    Ti inserisce l'ultimo perché è l'ultimo valore utile.

    Se fai un var_dump o print_r o "debbagghi" il software per vedere il contenuto di $_POST vedrai che ci sarà solo l'ultimo valore. Apperte questo...

    Per recuperare N valori dovresti ciclare gli oggetti in javascript con un each. Sia degli id che la quantità.

    Poi lì separi con un "-" (esempio) e lì invii in due variabili uno quantità e l'altro id tramite post in Ajax allo script php che poi splitti e esegui N query di update per quanti sono i valori con un foreach.

    Per iniziare scaricati la libreria jquery oppure puoi utilizzare cdn. Jquery è semplice da usare... Poi magari quando hai acquisito la skill passi a react o altro.

    Ti è più comodo e ti si aprirà un mondo esegui gli update senza che c'è un cambio pagina o refresh della pagina. Si posso fare cose molto carine...

    Chiedi se hai problemi o dubbi...
  • Re: AIUTO.... UPDATE con Mysql e PHP

    Se non vuoi utilizzare jquery e ajax..
    Gli id dell'id e quantità devo essere diversi.

    Prova un po' a dare id diversi per i vari Dom. Poi tramite post puoi recuperare i valori per ogni id.

    Fammi sapere...

    Ciao
Devi accedere o registrarti per scrivere nel forum
12 risposte