RISOLTO PHP MYSQL - Risultato di ritorno di una Query UPDATE

Stato
Discussione chiusa ad ulteriori risposte.

Baio84

Nuovo Utente
26
0
CPU
Intel Pentium 4
Scheda Madre
ASUS Oxford
HDD
150 GB
RAM
DDR 1,50 GB
GPU
GeForce 6200
Monitor
Benq T720
OS
Windows 7 Ultimate 32 bit SP1
Buongiorno a tutti!
Devo aggiornare un database e volevo farlo in questo modo. In pratica recupero i dati che mi servono. Formulo una query UPDATE con una condizione WHERE che, nel caso venga soddisfatta, mi aggiorna la riga senza aggiungermela. Se questa query non andasse a buon fine, allora aggiungo la riga con INSERT INTO. Qui ci sta il problema. Non riesco a trovare il modo di reperire il risultato di ritorno della query UPDATE. Nel senso che, anche se so di per certo che non va a buon fine perché la condizione WHERE non viene soddisfatta, sembra che mi dia sempre risultato positivo con varie metodologie che ho usato. Ho provato con num_rows, affected_rows, passare direttamente la query nell'if, ma niente. C'é per caso qualcosa che mi sfugge? Vi posto il codice
Codice:
$sql = "UPDATE COCORIONE SET ".$nomicolonne[0]." = ".$value['DEF']." WHERE NOME = '".$value['attaccante']."'";
$result = $mysqli -> query($sql) or die("Last error: {$mysqli -> error}\n");
echo $result -> affected_rows.'<br />';
if ($result -> affected_rows == '') {
    $sql = "INSERT INTO COCORIONE (NOME, ".$nomicolonne[0].") VALUES ('".$value['attaccante']."', ".$value['DEF'].")";
    $result = $mysqli -> query($sql) or die("Last error: {$mysqli -> error}\n");
}
 
Soluzione
Modificato la colonna con UNIQUE, modificato codice e tutto funziona!
Visto che è una cosa puramente amatoriale, mi cambia poco che sia chiave primaria o meno.
Ti ringrazio molto per l'aiuto!

Baio84

Nuovo Utente
26
0
CPU
Intel Pentium 4
Scheda Madre
ASUS Oxford
HDD
150 GB
RAM
DDR 1,50 GB
GPU
GeForce 6200
Monitor
Benq T720
OS
Windows 7 Ultimate 32 bit SP1
Purtroppo non mastico tanto codice. In pratica con quell'istruzione mi inserisce la riga ma, se trova un valore uguale all'interno di una colonna impostata UNIQUE oppure con chiave primaria, mi fa l'update.

Quindi, se imposto la colonna NOME come UNIQUE posso passare questa query
Codice:
INSERT INTO COCORIONE (NOME, A, B) VALUES ('Giacomo', 1, 2) ON DUPLICATE KEY UPDATE A = 1, B = 2

Se Giacomo non c'é ancora, mi fa l'INSERT INTO. Se esiste, mi aggiorna la riga col campo NOME Giacomo. Corretto?
 

Dumah Brazorf

Utente cAttivo
Utente Èlite
3,542
1,339
Il codice è corretto.
Pare che anche unique funzioni al posto della chiave ma per una tabella come la tua non vedo perchè non mettere il campo nome come chiave.
 
Ultima modifica:

Baio84

Nuovo Utente
26
0
CPU
Intel Pentium 4
Scheda Madre
ASUS Oxford
HDD
150 GB
RAM
DDR 1,50 GB
GPU
GeForce 6200
Monitor
Benq T720
OS
Windows 7 Ultimate 32 bit SP1
Modificato la colonna con UNIQUE, modificato codice e tutto funziona!
Visto che è una cosa puramente amatoriale, mi cambia poco che sia chiave primaria o meno.
Ti ringrazio molto per l'aiuto!
 
Soluzione
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando

Discussioni Simili