PDA

View Full Version : php e mysql : eseguire update ed insert!!


robalzu
18-01-2005, 22:32
ciao a tutti, riesco ad estrarre dei dati da un db mysql,però non riesco ad inserire nuovi record o a modificare i valori esistenti...
il codice è questo(per la modifica):

$query="UPDATE impianti SET codice_loc = '$codice_loc' ,stazione = '$stazione' ,rete = '$rete' ,servizio = '$servizio'
WHERE id_impianti==$record";
$result=mysql_query($query);
$controllo=mysql_affected_rows();
if ($controllo)
echo Modifica eseguita con successo
else
echo Attenzione,dati non inseriti correttamente

qualcuno mi sa dire la sintassi corretta?
grazie
roberto

recoil
18-01-2005, 23:06
non c'è bisogno del doppio uguale in SQL, probabilmente ti da errore per quel motivo

robalzu
19-01-2005, 21:52
non mi sono spiegato,a parte l'if di controllo,il codice non da errore, semplicemente non corregge i dati nel db ( o non aggiunge nessun record quando uso l'insert)
se stampo la variabile $controllo (righe modificate)mi da -1,però poi vado a leggere il db (o tramite phpmyadmin o tramite una query select )vedo che non è stato modificato niente.
grazie lo stesso cmq recoil,se ti viene qualche altra idea...:)
ciao roberto

cionci
20-01-2005, 09:30
Magari == avrà un altro senso...metti = e basta...
Quando succede questo incolla la query nel client testuale di mysql e verifica la correttezza della query...

recoil
20-01-2005, 10:40
Originariamente inviato da cionci
Quando succede questo incolla la query nel client testuale di mysql e verifica la correttezza della query...

si infatti

robalzu ma se togli i doppi == funziona?


e tu che ci fai qui?
corri a festeggiare e ubriacarti :D

per chi non lo sapesse è il compleanno del nostro amato mod e qui
http://forum.hwupgrade.it/showthread.php?s=&threadid=861796
c'è il thread di auguri
:cool:

robalzu
23-01-2005, 15:17
allora, il doppio = non influenza il comportamento dello script,altre prove da me effettuate:

stampo le variabili passate dal form prima di faer la query e sono quelle volute

ho provato a mettere questa stringa:

$query="UPDATE impianti SET servizio='$servizio' Where id_impianti=$record ";

e così funziona...

la stringa originale invece non va(prima vi avevo mostrato una versione senza tutte le variabili volute):

$query="UPDATE impianti SET codice_loc='$codice_loc',stazione='$stazione',rete='$rete',servizio='$servizio',pref_ris='$pref_ris',staz_rx='$staz_rx',pol_rx='$pol_rx',freq_rx='$freq_rx',ch_rx='$ch_rx',offs_rx='$offs_rx',pol_tx='$pol_tx',freq_tx='$freq_tx',ch_tx='$ch_tx',offs_tx='$offs_tx',pot_tx='$pot_tx',marca_pilota='$marca_pilota',mod_pilota='$mod_pilota',sintesi='$sintesi',marca_1_fin='$marca_1_fin',mod_1_fin='$mod_1_fin,comm_rf='$comm_rf',ricev_aux='$ricev_aux',comm_fi='$comm_fi' Where id_impianti=$record ";

ovvero,il prog fa la query e non restituisce errori, ma i dati nel db non vengono modificati!!!

robalzu
23-01-2005, 15:34
una ipotesi che mi è venuta in mente è che nel db mysql non tutti i campi hanno lo stesso tipo, ce ne son di tipo char e di tipo varchar,può voler dire qlcs?

Rivimario
26-01-2005, 12:01
Originariamente inviato da robalzu
una ipotesi che mi è venuta in mente è che nel db mysql non tutti i campi hanno lo stesso tipo, ce ne son di tipo char e di tipo varchar,può voler dire qlcs?

se sono campi di tipo text prova ad usare LIKE al posto di =
Saluti

robalzu
27-01-2005, 09:02
grazie,oggi provo e poi ti dico
ciao