Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema tabella SQL

  1. #1

    Problema tabella SQL

    Buongiorno programmatori, ho fatto un errore madornale,
    ho una tabella con numerosi quiz patente strutturata così:




    questa tabella è tutta piena di domande dei quiz con centinaia e centinaia di quiz patente, io ho caricato a mano per ogni riga il campo Libro3, il mio problema è che l ho fatto per il listato sbagliato, come potete vedere c è listato e io ho caricato per l AB ma dovevo farlo per AB1, questi quiz hanno sicuramente in comune la colonna blocco e quella info2 che possono aiutarmi perchè a blocco di AB c è sicuramnte il corrispondente uguale di AB1, come posso fare avendo tutti i dati di AB caricare la colonna Libro3 su AB1 che ha le corrispondenze che ho scritto?
    Mi spiego...
    a blocco 0041 in listato AB c è la stessa domanda che trovo in blocco 0041 su AB1, devo inserire a blocco e info2 di AB uguale a quelo di AB1 lo stesso Libro3; C è un modo di farlo con le query?

  2. #2
    riesci a fare una query che estragga SOLO quelli sbagliati?

  3. #3
    ah, poi: quanti ne devi correggere?

  4. #4
    Ciao Optime, grazie per la risposta!
    codice:
    $sql="SELECT * FROM quiz WHERE `listato`= 'AB' OR `listato`='AB1'  
                                    ORDER BY `quiz`.`Commento`  ASC";
    con questa query riesco a estrarre le righe a 2 a 2 che dovrebbero prendere il valore di Libro3 della prima riga e duplicarlo nella seconda:
    codice:
    http://localhost/phpmyadmin/themes/dot.gif Modifica http://localhost/phpmyadmin/themes/dot.gif Copia http://localhost/phpmyadmin/themes/dot.gif Elimina 2734 NQM2016 AB 684 12031 06 TRUE 02 C01 C 1 912 19 3 Dopo il segnale (A) si può trovare il segnale (B) Après le panneau (A) on peut trouver le panneau (B... Nach dem Zeichen (A) kann das Zeichen (B) anzutref... Dopo il segnale (A) si può trovare il segnale (B) Segnali di pericolo. 467 20 22 0086 12031 Strettoia simmetrica
    http://localhost/phpmyadmin/themes/dot.gif Modifica http://localhost/phpmyadmin/themes/dot.gif Copia http://localhost/phpmyadmin/themes/dot.gif Elimina 9906 NQM2016 AB1 684 12031 06 TRUE 02 C01 C 1 912 19 3 Dopo il segnale (A) si può trovare il segnale (B) Après le panneau (A) on peut trouver le panneau (B... Nach dem Zeichen (A) kann das Zeichen (B) anzutref... Dopo il segnale (A) si può trovare il segnale (B) Segnali di pericolo. 467 20 22 12031 Strettoia simmetrica
    per ognuno delle righe di AB che hanno blocco, info2, testo,commento = a quelle di AB1 devo inserire il corrispondente Libro3 , in pratica quel 0086 che è nella prima riga la devo duòlicare nella seconda!

  5. #5
    Ho provato 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
    }

  6. #6
    se sei sicuro che devi fare una INSERT e non una UPDATE puoi usare INSERT INTO ... SELECT ... (cioè i valori estratti dalla select fanno da input per la INSERT) ma devi fare una SELECT soltanto.

    se invece vuoi fare da PHP perché sei più comodo/tranquillo, si tratta di una comunissima INSERT, non vedo difficoltà

  7. #7
    Il metodo non mi cambia, è la Insert che non so come farla!
    Mi aiuteresti a impostarla?

    Il controllo è che siano uguali per le righe corrispondenti sia Blocco che Testo che commento.

    a Blocco,Testo Commento uguale ci va inserito il Libro3 corrispondente.
    Ultima modifica di Maxilboss93; 04-06-2020 a 10:10

  8. #8
    non conosco bene PHP (forse ti conviene chiedere nel forum apposito); qui un link di esempio https://www.w3schools.com/php/php_mysql_insert.asp

    (se ho capito bene la tua richiesta )

  9. #9
    No ma se sai come farlo da SQL uso phpmyadmin e lancio la query in automatico!

  10. #10
    Con PHP ora sono riuscito in questo modo a estrarre tutte quelle che hanno testo e commento uguale e visualizzare quelle della prima riga che le hanno.

    codice:
    
    
    require('includes/config.php');
    
    
       
    $conn = myDB::open();
    
    
    
    
    $sql="SELECT * FROM quiz WHERE `listato`= 'AB' 
                                    ORDER BY `quiz`.`Commento`  ASC";
    
    
    $result = $conn->query($sql);
    
    
    $array1=array();
    $array2=array();
    while($row = mysqli_fetch_array($result)){
        $array1[]=$row;
    }
    
    
    $sql2="SELECT * FROM quiz WHERE listato='AB1' ORDER BY `quiz`.`Commento`  ASC";
    $result2 = $conn->query($sql2);
    while($row2 = mysqli_fetch_array($result2)){
        $array2[]=$row2;
    }
    
    
    
    
    
    
    foreach($array1 as $row){
        foreach ($array2 as $row2){
            if(( $row['Testo']==  $row2['Testo']) && ($row['Commento']==  $row2['Commento'])){
                echo $row['Testo'].": ".$row['Libro3']."<br/>";
            }
        }
    }
    Ora però non so come fare l insert!

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.