Update con condizione SQL

Maxilboss93

Nuovo Utente
7 Gen 2020
15
1
3
Ho una tabella "quiz" strutturata così:


Questa tabella ha centinaia di righe in cui vi sono dei quiz, ogni quiz è diviso per listato, ma ho fatto un errore, ho caricato dei dati della colonna Libro3 in tutti quelli con listato= AB a mano a uno a uno, ho appena finito se non fosse che mi sono accorto che il listato utilizzato dal mio sito è listato=AB1, che è la stessa cosa del listato=AB con degli aggiornamenti, le due parti di tabella sono praticamente uguali, hanno ifatti in comune, blocco cioè ad esempio a blocco=0044 di AB c è la stessa cosa di blocco=0044 di AB1 , così vale per altri campi tra cui info2 e commento, come posso fare a inserire nel campo Libro3 di AB1 il corrispondente del quiz di AB? Basta una query o devo fare uno script PHP? non so dove sbattere la testa!
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
nel titolo parli di update,

poi leggo il testo e cerco di interpretarlo,
Questa tabella ha centinaia di righe in cui vi sono dei quiz,

ogni quiz è diviso per listato,

ma ho fatto un errore, ho caricato dei dati della colonna Libro3 in tutti quelli con listato= AB

a mano a uno a uno, ho appena finito

se non fosse che mi sono accorto che il listato utilizzato dal mio sito è listato=AB1,
che è la stessa cosa del listato=AB con degli aggiornamenti,

le due parti di tabella sono praticamente uguali,

hanno ifatti in comune,

blocco cioè ad esempio a blocco=0044 di AB c è la stessa cosa di blocco=0044 di AB1 ,

così vale per altri campi tra cui info2 e commento,

come posso fare a inserire nel campo Libro3 di AB1 il corrispondente del quiz di AB?

Basta una query o devo fare uno script PHP?

sinceramente capisco poco, ma estraggo questa riga

"come posso fare a inserire nel campo Libro3 di AB1 il corrispondente del quiz di AB? "

è questo il problema ?

in caso di risposta positiva,

bisogna capire come si identificano (SELECT) gli elementi del del quiz di AB

questi elementi identificati da una select che ti invito a scrivere vanno poi
inseriti ( nel campo Libro3 di AB1 ) come elementi nuovi della tabella o come update di elementi già esistenti ?
 

Maxilboss93

Nuovo Utente
7 Gen 2020
15
1
3
Provo a fartiu un esempio pratico,

Codice:
$sql="SELECT * FROM quiz WHERE `listato`= 'AB' OR `listato`='AB1'  
                                ORDER BY `quiz`.`Commento`  ASC";

con la seguente query ottengo le righe dell' AB che hanno già l' informazione Libro3 e sotto la corrispondente riga di AB1 della stessa tabella quiz senza l' informazione, in pratica ho bisogno per ogni doppione di queste righe di duplicare il valore di Libro3 da sopra a sotto!
 

Allegati

  • sql.png
    sql.png
    321,6 KB · Visite: 324

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
puoi indicare le colonne che identifica in modo univoco ciascuna riga,
esempio
listato, id, blocco ......
 

Maxilboss93

Nuovo Utente
7 Gen 2020
15
1
3
Allora, idquiz è un numero progressivo di tutti i listati, blocco, commento, testo lingua 1,2,3 , aiuto e foto che vedi nell' immagine sono identica sia per listato AB che AB1, come posso rendere identico anche il Libro3? Quell' 0086 che è nella riga sopra lo vorrei anche nella riga sotto e così tutti gli altri, se noti infatti cambia solo la colonna listato.
Ho bisogno che tutti quei Libro3 su AB siano messi nel corrispondente Libro3 di AB1 della stessa tabella quiz
 

Maxilboss93

Nuovo Utente
7 Gen 2020
15
1
3
Ho provato tramite PHP così, ora non so come fare l' insert però!

Codice:
require('includes/config.php');

   
$conn = myDB::open();


$sql="SELECT * FROM quiz WHERE `listato`= 'AB' 
                                ORDER BY `quiz`.`Commento`  ASC";

$result = $conn->query($sql);

foreach ($result as $row)
{
    echo $row['Blocco'].": ".$row['Libro3']."<br/>";
}

$sql2="SELECT * FROM quiz WHERE listato='AB1' ORDER BY `quiz`.`Commento`  ASC";
$result2 = $conn->query($sql2);

foreach ($result2 as $row2)
{
    echo $row2['Blocco'].": ".$row2['Libro3']."<br/>";
}

if(($row['Blocco']==$row2['Blocco'])&&($row['Testo']==$row2['Testo'])&&($row['Commento']==$row2['Commento'])){
    //qui ci va l'insert
}
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
lascia perdere php, scrivi una query, che ti estragga tutte le righe che da "AB" devono diventare "AB1"
( quindi con le clausole where necessarie )
ed anzichè l'asterisco (select *) metti l'elenco dei campi che dovrai scrivere come AB1

con php devi fare la stessa cosa, ma con il problema del linguaggio in più

la query che scrivi e che posti qui provala con il tool di sql, devi essere certo di estrarre TUTTI e SOLO gli elementi necessari da inserire come AB1
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
le query che ho visto nel php, non mi sembrano idonee ad estrarre quello che serve,

hai risolto in qualche modo ?

avevo in mente questi passaggi,

creare una query per estrarre i record necessari (set "AB")
creare una tabella "prova" identica a quella che contiene "AB" e "AB1"
insert / select nella tabella di prova
VERIFICA della bontà dei dati estratti e inseriti nella tabella "prova"
update della colonna da "AB" ad "AB1" nella tabella prova (ed eventuali altre colonne se necessario)
la tabella "prova" é veramente ok ?
se la risposta é affermativa, insert / select dalla tabella prova alla tabella di lavoro
eliminazione della tabella prova

sono pochi e semplici passaggi per evitare guai e muoversi in sicurezza
 
  • Like
Reactions: Maxilboss93
Discussioni simili
Autore Titolo Forum Risposte Data
A pulsante di update campo mysql con javascript Javascript 2
B [MySQL] Problemino con UPDATE MySQL 10
C Problema con update di un file PHP 6
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
G Update file con javascript per controllo estensioni Javascript 5
L DML: utente con permessi di UPDATE con WHERE ha bisogno di privilegi di SELECT? PHP 1
B Modificare sorgente joomla senza perdita modifiche con update Joomla 2
N UPDATE Tabella con l'uso di un mene a tendina PHP 0
gandalf1959 update di una tabella con due condizioni PHP 2
A Problema con UPDATE table SET username = $_SESSION["username"] PHP 22
blips Problema con Update multiplo PHP 1
P Ho riunito le prove con le sessioni, ma l'update non va PHP 20
P problema con l'update della data PHP 30
P Problema con update PHP 93
I update record in mysql anche con riga vuota PHP 3
Monital UPDATE di più campi del databse con valori immessi da caselle di testo PHP 10
R Problema con UPDATE su DB mysql MySQL 1
G problema con insert e update PHP 2
Y update con group by Database 5
L Problemi con Update Classic ASP 8
T aiuto con update PHP 5
8 problemi con update in oracle Oracle 0
peppoweb Windows, update con urgenza Sicurezza e Virus 2
jan267 Problema con UPDATE Classic ASP 3
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
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 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
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

Discussioni simili