Passaggio Record
Passaggio Record postato il 29/12/2009 14:43:50 nel forum programmazione, open source e hosting
Salve di nuovo,
oggi porto un nuovo problema, volevo chiedere se è possibile nella medesiama pagina tramite php decidere quale query avvenga prima e quale dopo. Spiego meglio il mio problema.
Io ho una DB con due campi CAMPO1 e CAMPO2. Ora ogni volta che la pagina viene chiamata i dati in CAMPO1 mutano, però vorrei che i vecchi dati del CAMPO1 passassero in CAMPO2 in modo da avere i dati aggiornati e anche quelli precedenti.
Ora spiego come avevo pensato di fare io:
Inanzi tutto riprendo i valori che ho inviato per salvarli nel CAMPO1
$valore1 = $_GET['valore1'];
Ora riprendo il valore salvato in CAMPO1
$Ripiglio = "SELECT * FROM TABELLA1";
$result = mysql_query($sqlquery);
$i = 0;
$valore2 = mysql_result($result,$i,"valore2");
E lo salvo in CAMPO2
$salvo = mysql_query("UPDATE TABELLA1
SET CAMPO2 =$valore2
");
Quindi ora salvo i dati che avevo ripreso all' inizio da GET e li salvo nel CAMPO1
$search = mysql_query("UPDATE TABELLA1
SET CAMPO1 =$valore1
");
Così facendo dovrei ottenere i dati nuovi e quelli vecchi, ed invece mi salva sia in CAMPO1 sia in CAMPO2 i dati aggiornati!
Qualcuno saprebbe suggerirmi un modo per sviare questo problema?
Pagine → 1
29/12/2009 15:17:49 e modificato da tsumi il 29/12/2009 15:19:03
Ad occhio nella mysql_result() prendi il contenuto di "valore2" quando il campo si chiama "CAMPO2" quindi probabilmente trova un tubo.
ad ogni modo puoi fare tutto con una query sola tipo:
$query="UPDATE tab SET campo2 = campo1, campo1 = ".$_GET['valore1'].";";
(Presumo tu debba anche aggiungere una clausola WHERE visto che, come credo, la tabella avrà più di una riga...)
Tsu
29/12/2009 15:45:39
tsumi ha scritto: Ad occhio nella mysql_result() prendi il contenuto di "valore2" quando il campo si chiama "CAMPO2" quindi probabilmente trova un tubo.
ad ogni modo puoi fare tutto con una query sola tipo:
$query="UPDATE tab SET campo2 = campo1, campo1 = ".$_GET['valore1'].";";
(Presumo tu debba anche aggiungere una clausola WHERE visto che, come credo, la tabella avrà più di una riga...)
Tsu
No, er quanto riguarda ritrovare i valori nel DB riesco a trovare tutto senza problema.
Per quanto riguarda la query da te scritta però credo (non ho ancora testato) che sia in CAMPO1 che in CAMPO2 verrà salvato lo stesso valore dato dal valore che ha GET, oppure esaudisce la mia richiesta e passa a CAMPO2 il valore di CAMPO1 e a CAMPO1 il valore di GET?
29/12/2009 16:05:27
Scrivi:
$Ripiglio = "SELECT * FROM TABELLA1";
$result = mysql_query($sqlquery);
non dovrebbe essere:
$Ripiglio = "SELECT * FROM TABELLA1";
$result = mysql_query($Ripiglio);
questo è il primo errore che ho trovato di sicuro ma ad occhio vedo altre cose che mi lasciano in dubbio
29/12/2009 17:17:31
iko93 ha scritto:
Per quanto riguarda la query da te scritta però credo (non ho ancora testato) che sia in CAMPO1 che in CAMPO2 verrà salvato lo stesso valore dato dal valore che ha GET, oppure esaudisce la mia richiesta e passa a CAMPO2 il valore di CAMPO1 e a CAMPO1 il valore di GET?
Prima:
Campo1 = [1] Campo2 = [0]
UPDATE tab SET Campo2 = Campo1, Campo1 = 2;
Dopo:
Campo1 = [2] Campo2 = [1]
Se è questo quello che vuoi ottenere allora quella query fa al caso tuo.
Tsu
29/12/2009 20:02:26
Festeggiato troppo presto, ragazzi, sarò tarato nel cervello ma a me non funziona, vi posto la query così com'è
$query= mysql_query("UPDATE navi SET x1 = xp1, y1 = yp1 , x1 = $x, y1 = $y");
29/12/2009 20:40:00
iko93 ha scritto: Festeggiato troppo presto, ragazzi, sarò tarato nel cervello ma a me non funziona, vi posto la query così com'è
$query= mysql_query("UPDATE navi SET x1 = xp1, y1 = yp1 , x1 = $x, y1 = $y");
Scusa eh ...
ma se tu prima fai
x1 = xp1
e poi
x1 = $x
(ed idem con y)
come pensi possa funzionare??
col secondo sovrascrivi la prima operazione :|
cioè supponendo che:
x1 valga 1
xp1 valga 2
$x valga 3
x1 = xp1 -> x1 vale 2
x1 = $x -> x1 vale 3
Tsu
29/12/2009 20:47:37
$query= mysql_query("UPDATE navi SET x1 = xp1, y1 = yp1 , $x = x1, $y = y1");
invertendo però viene
x1 = 1
xp1 = 2
$x = 3
x1 = xp1 -> xp1 vale 1
$x = x1-> x1 vale 3
Devo considerare sempre che il primo valore passa a quello dopo l' uguale dunque!
29/12/2009 20:51:12
No...
le assegnazioni sono sempre da dx verso xs
x = y (x vale y)
x = 3 (x vale 3)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Crossout ↗
RAID Shadow Legends ↗
Tibia ↗
Foundation Galactic Frontier ↗
War Thunder ↗
World of Warship ↗
CRSED: F.O.A.D. ↗
World of Tanks ↗