Update multiple

  • Creatore Discussione Creatore Discussione iuta74
  • Data di inizio Data di inizio

iuta74

Nuovo Utente
29 Apr 2014
24
0
0
Ciao a tutti, chiedo gentilmente il vs aiuto per quanto segue.

Sto creando un'applicazione che permette di creare degli ordini in una intranet aziendale.

Quando l'utente effettua il login, visualizza un elenco di prodotti. Selezionati quelli interessati (uno alla volta), gli articoli vengono temporaneamente salvati in una tabella di servizio. In seguito l'utente procede con l'inserimento delle quantità per ciascun articolo. E qui mi sono bloccato...

Ho creato la pagina php che semplicemente "pesca" dalla tabella di servizio, gli articoli precedentemente selezionati dall'utente. Per ogni riga di prodotto, visualizzo di fianco un campo d'inserimento delle quantità pre-compilato a zero.
Avrei necessità del codice che mi permette di effettuare un numero di update pari alle righe degli articoli. L'update è solo sulla quantità, perché solo quello il valore modificabile. La tabella di servizio non dispone di una primary key, pertanto i nomi dei campi di imputazione sono creati dinamicamente come segue:
PHP:
<input type="text" name="quantita_<?php echo $row['codicearticolo'] ?>">
Qualcuno sarebbe così gentile da postarmi per intero il codice per effettuare l'update e spiegarmelo? Grazie!
 
ciao
intanto modificherei il campo di input, rendendolo un array
PHP:
<input type="text" name="quantita[<?php echo $row['codicearticolo']; ?>]">
poi dove devi uppare (schematizzo)
PHP:
<?php
//dati di connessione
foreach($_POST['quantita'] as $codice => $quantita){
	//non so come si chiama la tabella ne i campi quindi metto a caso
	$query="UPDATE tua_tabella SET quantita=$quantita WHERE codice='$codice'";
	//se invece la quantità deve essere sommata o sottratta alla registrata
	/*
	$query="UPDATE tua_tabella SET quantita=quantita+$quantita WHERE codice='$codice'";
	*/
	$result=mysqli_query($conn,$query);
}
//...
?>
guarda che non ho messo gli opportuni controlli
prova a vedere se funzia
 
Ciao Borgo, vediamo se posso sfruttare ancora il tuo prezioso aiuto...

Nel post di cui sopra mi hai aiutato ad effettuare update multipli di un anteprima d'ordine composto da n codici...
... nel frattempo l'applicazione va avanti, ma qui proprio mi sono "incastrato". Immagina una parte dell'applicazione in cui, un utente svogliato, decida d'importare l'ordine anziché inserirlo riga per riga(selezionando gli articoli da una lunga e noiosa lista).

Dunque, ecco come immagino questa parte.
1- Click sul link che mi chiede di selezionare il file .csv da importare (ho già creato un link dove scaricare il template molto banale, composto da due colonne "CODICE" e "QUANTITA"). Quindi, il mio utente, precedentemente si è scaricato il template csv, ha popolato le due colonne, l'ha salvato sul suo pc ed infine, utilizzando il famoso link, ha selezionato il .csv da lui salvato.

2- Anziché salvare brutalmente i dati contenuti nel .csv, ho bisogno di effettuare alcuni controlli. Prima devo verificare che questi codici NON siano già presenti nella tabella "ORDINI"... o meglio... devo verificare che NON siano stati ordinati nelle ultime due settimane dall'agente che sta effettuando l'importazione (nella tabella "ORDINI", tra i vari campi ho data_inserimento, id_agente, codice_articolo... quindi ho già tutte le info per effettuare la verifica). Secondo, devo verificare che la quantità inserita per ciascun articolo, NON sia maggiore di 5pz.

3- Effettuate le verifiche del caso, devo riportare in una pagina di anteprima (NON modificabile), l'anteprima dell'ordine da importare. Quindi faccio vedere per ogni riga il codice con relativa quantità (ci saranno altre info che recupero con una INNER JOIN, ma a quello ci penso io... tu fai finta di visualizzare solo il codice e la qtà). ATTENZIONE1: qualora ci fossero codici già ordinati nelle precedenti due settimane, lo devo segnalare all'utente (del tipo che nell'anteprima, la riga dedicata al codice incriminato riporterà una voce "codice non ordinabile fino a... data_inserimento+14gg). ATTENZIONE2: qualora ci fossero codici con quantità superiore a 5pz, riporterò 5pz. Qualora ci fossero caratteri diversi da un numero nella colonna qtà, riporterò zero pz.

4- Solo a questo punto (cioè dopo i controlli effettuati a sistema) l'utente potrà premere il pulsante "IMPORTA" e trovarsi magicamente salvato l'ordine.

Help me, please. Grazie!
 

Discussioni simili