Update

Gae58

Utente Attivo
26 Mar 2012
84
0
0
salve,

Mi trovo alle prese con una query in cui ho 2 tabelle, una dei Comuni ed una delle Regioni.

Nella Tabella dei Comuni ho un campo Regioni.

NElla select ho collegato attraverso la join il campo alla Tabella Regioni efunziona.

Adesso per lUpdate non so come fare.

Premetto che uso i PDO con i parametri.

Facendo varie prove ho notato che nella Tabella dei COmuni devo memorizzare il Progressivo della Regione. Ma a questo punto non ho capito il significato della Join nell'UPDATE.

In una form in Variazione, permetto la scelta della Regione da un comboBox e pensavo che sarebbe passato passare la Var della form per aggiornare il campo, ma non è così.

Questo è il codice dell'UPDATE:
PHP:
					$cSql = 'UPDATE Comuni  AS Comu
								LEFT JOIN Regioni AS Regi	ON Comu.Regione = Regi.Descrizione
										SET Comu.Descrizione=?, Comu.Cap=?, Comu.Prov=?, Comu.CodIstat=?, Comu.Regione=?  
											WHERE Comu.Progressivo = ?';
					$aPara = array( $Var['Des'], $Var['Cap'], $Var['Prov'], '', Regi.Progressivo, $Var['Prog'] );
Mi ritorna l'errore sul parametro Regi.Progressivo

Come faccio a passare il progressivo della abella Regioni?

grazie

Gaetano
 
Ultima modifica di un moderatore:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ti perdono per non aver formattato il sorgente con i tag BBCode solo perché usi PDO, cosa assai rara da vedere.
Stavolta ho modificato io, la prossima però cancello.

Detto questo, passiamo al tuo problema. Per forza ti dà errore su Regi.Progessivo: non è una sequenza riconosciuta da PHP... A cosa ti riferisci? Una variabile?
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
chiedo scusa, come faccio a formattare con i tag BBCode?

Dopo che ho scelto la Regione nella Select ho la Var $_POST[Regi'+che contiene il nome della Regione, ma non lo memorizza nel dB.
Ho pensato volesse il dato numerico.

Regi.Progressivo è il campo dell'UPDATE che passo nei parametri, è stata un'ulteriore prova
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Nella seconda barra di formattazione del post: ultimi tre pulsanti (nel tuo caso avresti dovuto usare l'icona con su scritto PHP).

Comunque, fai una cosa: posta tutto lo script. Voglio vedere come recuperi i vari dati del form.
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
PHP:
			$cSql = 'UPDATE Comuni  AS Comu
								LEFT JOIN Regioni AS Regi	ON Comu.Regione = Regi.Descrizione
										SET Comu.Descrizione=?, Comu.Cap=?, Comu.Prov=?, Comu.CodIstat=?, Comu.Regione=?  
											WHERE Comu.Progressivo = ?';
					$aPara = array( $Var['Des'], $Var['Cap'], $Var['Prov'], '', $Var['ProgRe'], $Var['Prog'] );
					$cQry = null;
						$cQry = cQuery( $Conn, $cSql, $aPara );

ho usato l'icona con php. Ho fatto bene?
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
è una normale pagina web con un form ed i valori li passo ad una funzione attraverso questa riga
PHP:
$lRis = Aggiorna( 'Comuni', $_POST )

Quindi l'array post della formm attraverso la func viene preso dall'array $Var

Quindi $Var corrisponde a $_POST
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
In teoria il codice giusto è:
PHP:
$cSql = 'UPDATE Comuni AS Comu
LEFT JOIN Regioni AS Regi ON Comu.Regione = Regi.Descrizione
SET Comu.Descrizione = ?, Comu.Cap = ?, Comu.Prov = ?, Comu.CodIstat = ?, Comu.Regione = ?
WHERE Comu.Progressivo = ?';
$aPara = array($Var['Des'], $Var['Cap'], $Var['Prov'], '', $Var['Regi'], $Var['Prog']);
Dunque inserisci questo, e se non funziona scrivi:
PHP:
var_dump($Var);
E vedi che dati contiene.
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
già fatto e la var $Var['Regi'], contiene il nome della Regione, soltanto che dopo aver salvato senza aver dato alcun tipo di errore, vado a controllare il dato e non mi mette la regione.

Apro a mano la tabelle e vedo che il progressivo è zero e manca, invece, il progressivo della regione

La cosa che non capisco è l'istruzione JOIN Regioni AS Regi ON Uffi.Regione = Regi.Progressivo,
Questa non dovrebbe servire a collegare i 2 campi ?
 
Ultima modifica:

Gae58

Utente Attivo
26 Mar 2012
84
0
0
Codice:
LEFT JOIN Regioni AS Regi ON Comu.Regione = Regi.Descrizione

Comu.Regione Non penso sia esatto in quanto la tabella è uffici e quindi devo mettere Uffi.Regione

Regi.Descrizione, avevo già provato a farlo, ma con lo stesso risultato.

QUando nel movimento è presente la Regione, quando vado in vaiazione, me la cancella

La soluzione è passare il dato numerioc, ma come faccio a darglielo?
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
La Tabella che devo Aggiornare è la Tabella Uffici, un campo di questa è il campo Regioni, dato Numerico.
Quando Visualizzo il Movimento, per evitare che mi visualizzi il dato numerico, nella select inserisco al Join e sin qui tutto funziona.

In un'altra pagina effettuo la modifica e la select della scelta della regione me le visulizza tutte.
Con l'UPDATE devo aggiornare il valore numerico del campo Regioni della Tabella Uffici.

Se nell'UPDATE non effettuo la Join come faccio ad inserire il dato numerico nel campo?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Nel form la select contenente le regioni deve avere il nome della regione come etichetta, e il campo numerico come valore.
Una cosa del genere, insomma:
HTML:
<select name="regione">
    <option value="1">Regione 1</option>
    <option value="2">Regione 2</option>
    <!-- ... -->
</select>
In questo modo l'ID della regione sarà già contenuto in $_POST['regione']. Non capisco che bisogno ci sia, a questo punto, di fare la JOIN.
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
La mia ignoanza è abbissal, mi sa che hai Ragione, se è così ti chiedo scusa sin da adesso per la mia ESAGERATA ignoranza ed incopetenza.

Proverò e ti farò sapere

Per il momento ti ringrazio tanto

Ciao Gaetano
 

Gae58

Utente Attivo
26 Mar 2012
84
0
0
Ti confermo quanto detto nel precedente messaggio, in quanto la logica è giusta.

Adesso funziona tutto bene.
Come logica ci ero arrivato quando dicevo che occorreva il dato numero, ma, purtroppo, non settavo il value dell'otion col progressivo.

Di nuovo grazie

Gaetano
 
Discussioni simili
Autore Titolo Forum Risposte Data
K Problema form update PHP 2
M query update e delete PHP 0
N MAX() + ADD_DATE - per update su Mysql MySQL 0
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A pulsante di update campo mysql con javascript Javascript 2
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
MarcoGrazia ON DUPLICATE KEY ma in realtà non UPDATE mai PHP 17
R Errore UPDATE tabella mysql PHP 1
M Update con condizione SQL PHP 7
M Problema su update di 3 tabelle PHP 1
G Problema update di un database PHP 0
L update tabelle in php mysql [risolto] PHP 6
P update records PHP 2
B [MySQL] Problemino con UPDATE MySQL 10
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
felino [Windows 8.1] Windows Update non funziona correttamente Windows e Software 3
P [PHP] INSERT e UPDATE PHP 1
elpirata [MYSQL] Schedulare evento per update del campo data su tabella MySQL 0
D [ASP] Mysql insert e update Classic ASP 2
M UPDATE non aggiorna db se lo inserisco in un ciclo Database 1
Monital [PHP] query update e select insieme ma frazionando l'arrray PHP 12
D [PHP] Update non trasferisce condizione where PHP 1
L [PHP] Errore UPDATE su tabella DB PHP 22
giancadeejay [PHP] istruzione UPDATE SQL PHP 2
giancadeejay [PHP] UPDATE DATO , SE ESISTE IN DB .. PHP 14
C What is Latest update on SEO SEO e Posizionamento 1
K Non trovo l'errore! PDO MYSQL UPDATE PHP 2
marini91 Update record in mysqli PHP 1
R [MySQL] SQL UPDATE INNER JOIN MySQL 5
giancadeejay [PHP] Update tabella da file csv PHP 3
webmachine [PHP] SELECT, UPDATE VERIFICARNE IL RISULTATO PHP 2
cris8380 [PHP] Update in search. PHP 16
filippino Google Update fine Aprile 2016: Bruschi cambiamenti SERP SEO e Posizionamento 3
pup3770 Riprendere da db e UPDATE PHP 9
N Problema funzione UPDATE PHP 9
C Problema con update di un file PHP 6
L Upload immagine e update dati DB PHP 2
K Problema con update di un database in un ciclo Classic ASP 1
C Problema con Update di una tabella di un db PHP 3
L update MySQL 2
G Update file con javascript per controllo estensioni Javascript 5
P Problemi UPDATE PHP 1
MarcoGrazia [PDO][MySQL] L'update non avviene PHP 1
R Update PHP dalla 5.3.3 alla 5.3.4 PHP 0
S Insert into....on duplicate key update MySQL 2
1 Errore UPDATE, DELETE MS Access 16
Z Google Update del 7 Agosto 2014 SEO e Posizionamento 1
M Messaggio di errore su pulsante update PHP 0
L DML: utente con permessi di UPDATE con WHERE ha bisogno di privilegi di SELECT? PHP 1
I Update multiple PHP 3

Discussioni simili