Creazione tabella tramite i risultati di un'altra tabella

andrex1191

Utente Attivo
5 Apr 2011
78
0
0
Salve,
io ho questa tabella che è il risultato di una query:
CODICE--COGNOME ---NOME------DATA--- NUMERO_MODULO_SCELTO
0________rossi______matteo__2011/10/10________5
0________rossi______matteo__2011/10/10________1
2________bianchi____luca____2011/05/08_________2


ora tramite questa tabella
devo creare una tabella fatta cosi'

CODICE--COGNOME----NOME-----DATA------MODULO 1-MODULO 2 -...MODULO 5
0________rossi______matteo__2011/10/10____true______false______...true
2________bianchi____luca____2011/05/08_____false______true______...false

la tabella finale in pratica avrà una riga per ogni "utente" e per i moduli che ha scelto quell'utente ad esempio l'1 e il 5, saranno assegnati true e true i rispettivi campi dei moduli scelti.
 
Allooooooora

Puoi fare così:

1 - Fai la tua select *
2- Per ogni riga prendi il codice, verifichi se esiste nella nuova tab
3 - Se esiste fai un update sul campo corrispondente al numero, altrimenti lo inserisci.

Quindi:
PHP:
$query=mysql_query("SELECT * FROM tab1");
for($i=0;$i<mysql_num_rows($query);$i++) {
     $cod=mysql_result($query,$i,'codice');
     $mod=mysql_result($query,$i,'NUMERO_MODULO_SCELTO');
     $cognome=mysql_result($query,$i,'COGNOME');
     $nome=mysql_result($query,$i,'NOME');
     $data=mysql_result($query,$i,'NOME');
     $query2=mysql_query("SELECT codice FROM tab2 WHERE codice='$cod'");
     if(mysql_num_rows($query2)) {
         mysql_query("UPDATE tab2 SET MODULO".$mod."='$mod' WHERE codice='$cod'");
    }
     else {
           mysql_query("INSERT INTO tab2 (CODICE,COGNOME,NOME,DATA,MODULO$mod) VALUES ('$cod','$cognome','$nome','$data','true');
    }
}

I campi moduli come default devono essere false ovviamente

Cmq la struttura del db fa skifo dovresti fare una tabella MODULI in cui ci sono solo i moduli ovvero i numeretti. E poi fare una tab ass_moduli_utenti in cui mettere codice utente e rispettivo modulo x n moduli. Questo xkè la relazione è N a N
 
Ma la seconda tabella non esiste..è quella da creare tramite la prima.
Riguardo al database per come l'ho spiegato io fa schifo è vero..ma in realtà è fatto bene..la query che da come risultato la prima tabella è applicata su 2 tabelle ovvero utente, iscrizione(tabella di relazione tra altre tabelle);
insomma è un po un casino ma comunque tutto questo è relativo per questo non l'ho precisato.
Quello che mi serve sapere è come fare a creare una tabella in un certo modo prendendo dati relativi ad un'altra tabella.
Questa è la mia prima query:
PHP:
$Sessione = $_POST['datavis'];
include "../connect.php";

$select = "SELECT utente.codice, utente.cognome, utente.nome, utente.Data_nascita, iscrizione.numero_modulo_scelto
           FROM   utente,iscrizione
           WHERE  iscrizione.Data = '{$Sessione}'
           AND    utente.Skillcard = iscrizione.Skillcard";

$export = mysql_query($select,$conn) or die("Errore invio query ".  mysql_error());
$estrai = mysql_fetch_array($export);
il risultato di questa query sarà cosi'(esempio):
CODICE--COGNOME ---NOME------DATA--- NUMERO_MODULO_SCELTO
0________rossi______matteo__2011/10/10________5
0________rossi______matteo__2011/10/10________1
2________bianchi____luca____2011/05/08_________2

Ora devo CREARE secondo i dati estratti dalla prima query una nuova tabella in questo formato:
CODICE--COGNOME----NOME-----DATA------MODULO 1-MODULO 2 -...MODULO 5
0________rossi______matteo__2011/10/10____true______false______...true
2________bianchi____luca____2011/05/08_____false______true______...false

spero sia più chiaro così
grazie infinite
 
Con qualche piccola modifica il tuo codice funziona alla perfezione ti ringrazio infinitamente
si può chiudere :D
 

Discussioni simili