errore aggiornamento tabella mysql

master1986

Utente Attivo
8 Ott 2012
234
0
16
ciao

ho un problema con la funzione query update

Praticamente ho 2 tabelle contenute nel database, quindi con questa struttura e campi


database
-tabella1
--campo1
-tabella2
--campo1

la funzione che uso è questa


$query = "UPDATE tabella1 SET campo1='{$variabiledefinita1},' campo2='{$variabiledefinita2},";



Una volta lanciato lo script funziona, e carica ad esempio un dato "10" in tabella1---->campo1


Il problema si verifica se eseguo nuovamente lo script. Praticamente mi aggiunge un altro valore (doppione), di conseguenza se interrogo il db l'echo mi restituisce dei valori doppi, ad esempio

1010

quando invece era solo 10



qualche suggerimento per evitare i doppioni? a me servirebbe solo sovrascrivere il dato presente.
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ciao, scusa non ho capito.
Ma se hai due tabelle come fai a scrivere in entrambi con una sola query?
Dovresti fare così per aggiornare due tabelle differentemente:
PHP:
$query = "UPDATE tabella1 SET campo1='{$variabiledefinita1}";
$query2 = "UPDATE tabella2 SET campo2='{$variabiledefinita2}";
 
Ultima modifica:

master1986

Utente Attivo
8 Ott 2012
234
0
16
Ciao, scusa non ho capito.
Ma se hai due tabelle come fai a scrivere in entrambi con una sola query?
Dovresti fare così per aggiornare due tabelle differentemente:
PHP:
$query = "UPDATE tabella1 SET campo1='{$variabiledefinita1}";
$query2 = "UPDATE tabella2 SET campo2='{$variabiledefinita2}";




Sto provando in questo modo ma non si aggiornano i dati, prima si aggiornavano e praticamente aggiornando un campo mi aggiornava tutti i campi aggiungendo i valori uno di seguito all'altro

praticamente con echo il valore 3 veniva visualizzato così

333333333333333333333333333333333333333333333333


praticamente viene triplicato ad ogni update dello script php
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Guarda una spiegazione logica per il fatto che la query ti scriva un tot numero di volte
qualcosa automaticamente è che si trovi in un ciclo.
Controlla che la query non sia inserita all'interno di un ciclo di iterazione e che
non venga eseguita piu' volte.
Inoltre non ho ben capito come fai a scrivere in due tabelle diverse con una sola query
al massimo puoi scrivere in due record diversi nella stessa tabella.
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
secondo me il problema è nella variabile
controlla cosa contiene prima dell UPDATE
PHP:
var_dump($variabiledefinita1);
probabilmente contiene il valore gia triplicato
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
Questa è la struttura del mio database

-Database
--Tabella1
---Campo1
---Campo2
---Campo3
--Tabella2
---Campo1
---Campo2
---Campo3


Possiedo 3 variabili, le quali generano un valore numerico, quindi $variabile1. $variabile2, $variabile3


I dati della $variabile 1 devono essere scritti in Campo1
quelli di $variabile 2 in Campo2
mentre quelli di $variabile3 in Campo 3



Forse sono io che non ho strutturato lo script bene


consigliatemi voi
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
secondo me il problema è nella variabile
controlla cosa contiene prima dell UPDATE
PHP:
var_dump($variabiledefinita1);
probabilmente contiene il valore gia triplicato



Ciao criric, ho controllato e fatto anche degli echo, tutte e 3 le variabili generano dei valori brevi, esempio 1, 2, 3.3 ecc

quindi le variabili hanno un valore
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
ragazzi vi posto anche come ho creato il database così vediamo se ho sbagliato:


CREATE TABLE TABELLA1 (
campo1 VARCHAR(20),
campo2 VARCHAR(20),
campo3 VARCHAR(20)
);


poi ho inserito dei dati a piacere (tanto dopo con la funzione php verranno sovrascritti da quelli reali)


INSERT INTO tabella1 (campo1) VALUES (1);
INSERT INTO tabella1 (campo2) VALUES (1);
INSERT INTO tabella1 (campo3) VALUES (1);




va bene così?


e poi di seguito le altre tabelle, ora quello che vorrei capire e come poter aggiornare i campi con php della tabella 1
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
puoi postare anche il codice php che usi?
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
prova ad inserire come query di insert questa:

PHP:
$sql = mysql_query("INSERT INTO tabella1 (campo1) VALUES  (1)") ;
 
Ultima modifica:

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
L'avevo corretta riprova con quella corretta:

PHP:
$sql = mysql_query("INSERT INTO tabella1 (campo1) VALUES  (1)") ;
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
veramente assurda come cosa, sono costretto sempre a ricreare il database poichè in 3/5 update dello script php diventa di alcuni mb la tabella!


Appena creo il database è faccio un echo, mi da correttamente il valore che ho inserito in phpmyadmin, cioè "1"


Appena faccio l'update query triplicano tante volte quanti campi ci sono nella tabella


è un ragionamento contorto ma penso che mi abbiate capito
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
ho provato ma mi dice che la query è vuota :eek:




Ecco, funziona :) praticamente mettendo al posto di (1) la variabile che possiedo mi inserire il dato nel campo


Il problema ora è che ogni qualvolta eseguo lo script per caricare i dati me lo aggiunge di seguito, cioè si raddoppia, dovrebbe aggiornarsi.

esempio:

$sql = mysql_query("INSERT INTO tabella1 (campo1) VALUES (1)") ;


il risultato dell'echo è: 1


Se invece vado a fare un nuovo update, presupponendo che il valore sia 50 ecco cosa mi esce


risultato dell'echo: 150




Praticamente ha aggiunto di seguito il primo update e il secondo. dovrebbe aggiornarlo


è possibile?
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
No, non ha senso prova con questa query di Update.
PHP:
$query = "UPDATE tabella1 SET campo1='2' WHERE campo1= '1'";
 
Ultima modifica:

master1986

Utente Attivo
8 Ott 2012
234
0
16
Faccio una cosa metto il codice php con cui faccio lo script, è semplicissimo e corto
PHP:
<?php
mysql_connect('host', 'user', 'pass');
mysql_select_db('nomedb');

$query = "UPDATE tabella1 SET campo1='$variabile1' WHERE campo1='$variabile1'";
$result = mysql_query($query);

if (!$result) {
    die("Errore nella query $query: " . mysql_error());
}

$result = mysql_query($query);
mysql_close();
?>
Di funzionare funziona, il dato lo carica, ma si somma, restituisce un valore doppio ogni qualvolta si fa un update dello script
 
Ultima modifica di un moderatore:

master1986

Utente Attivo
8 Ott 2012
234
0
16
Ho controllato le variabili, che vengono generate da un altro script è restituiscono valori corretti.

A questo punto non saprei più che fare.
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Prova così, inserisci i parametri di connessione del tuo db.
Comunque è meglio richiamare i parametri di connessione esternamente.
PHP:
<?php

$dbhost = 'localhost'; 
$dbuser = 'user'; 
$dbpass = 'pass'; 
$dbname = 'name'; 
$connessione = mysql_connect("localhost","user","pass") 
or die("Impossibile connettersi al server host"); 
mysql_select_db(name, $connessione) or die 
("Impossibile selezionare il database.");

$query = mysql_query("UPDATE tabella1 
         SET campo1='$variabile1'
         WHERE campo1='1'");
mysql_close($connessione);

?>
 
Ultima modifica:

master1986

Utente Attivo
8 Ott 2012
234
0
16
Prova così, inserisci i parametri di connessione del tuo db.
Comunque è meglio richiamare i parametri di connessione esternamente.
PHP:
<?php

$dbhost = 'localhost'; 
$dbuser = 'user'; 
$dbpass = 'pass'; 
$dbname = 'name'; 
$connessione = mysql_connect("localhost","user","pass") 
or die("Impossibile connettersi al server host"); 
mysql_select_db(name, $connessione) or die 
("Impossibile selezionare il database.");

$query = mysql_query("UPDATE tabella1 
         SET campo1='$variabile1'
         WHERE campo1='1'");
mysql_close($connessione);

?>




Ora non si aggiorna il valore, resta sempre 1, cioè il valore che ho prestabilito quando ho creato il database



dove sta il nodo :incazz2:
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Errore ITMS-9000 quando da Xcode pubblico aggiornamento Sviluppo app per iOS 0
YellowMan Aggiornamento WordPress: errore 500 (su Aruba) WordPress 1
M Errore nell'aggiornamento news PHP 4
K Inserimento query Errore 1366 PHP 4
F errore 1062 su campo nuovo MySQL 4
N Errore interno Access MS Access 2
R mi da errore dove inizia il while PHP 1
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
R Yoast SEO errore semafori sempre rossi SEO e Posizionamento 0
S Visualizza l'errore di creazione in MSSQL Database 4
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
P Errore nell'indirizzo degli elementi HTML e CSS 2
Jensen Errore di sintassi con DELETE PHP 3
H Errore su array associativo PHP 1
FDF182 ERRORE 1292 PHP 4
P errore 404 con javascript Javascript 2
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A errore http://datatables.net/tn/7 PHP 4
M Errore visualizzazione meta tag title e description SEO e Posizionamento 1
A Errore durante il salvataggio Photoshop 0
M Errore configurazione motion detection nvr Hikvision DS-7616 IP Cam e Videosorveglianza 0
voldemort [c] Errore di segmentazione (core dump creato) C/C++ 1
T SSD - errore sistema Hardware 2
R Navigare sito con cURL, mi restituisce errore PHP 0
L File CSV con app inventor da errore Sviluppo app per Android 2
A Errore visualizzazione selezione testo Photoshop 0
I Postman 400 Errore di richiesta non valida Programmazione 0
S Errore PHP - Notice: Undefined index ... PHP 14
U Campo vuoto data errore Fatal error: PHP 2
R Errore UPDATE tabella mysql PHP 1
R W10 Segnalazione di errore su terminale USB Windows e Software 0
G non riesco a capire quale sia l'errore [SQL] MySQL 2
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
E Errore di lettura php in html PHP 8
A php metodo post jquery non da mai errore jQuery 4
W Errore di run-time di Microsoft VBScript error '800a0035' Impossibile trovare il file Classic ASP 0
B Errore unexpected '$variabile' (T_VARIABLE) in your code on line PHP 2
M errore dopo passaggio Php 7.2 PHP 6
S -> Errore PHP 8
S Errore "ftp_put(): Can't open that file: Permission denied" PHP 1
P Errore telecamere hdcvi dahua IP Cam e Videosorveglianza 16
L form multipla php sql,errore in inserimento MySQL 0
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
F [PHP]Errore registrazione PHP 8
MarcoGrazia [PHP] Download di file con errore all'interno. PHP 1
V [ORACLE] Errore ora-06512 at sys.utl_file Oracle 0
A [WordPress] Errore Plugin WordPress 0
P [WordPress] Messaggio di errore in file style.css WordPress 0
G [Javascript] Errore inserimento dati Backend Node.js e workbench Javascript 1
M [PHP] WS-Security errore PHP 0

Discussioni simili