Salve a tutti!!!

Vengo subito al sodo VVoVe:

Ho provato a fare una pagina che va a leggere le tabelle del database, prende solo quelle che cominciano per "for" (che sarebbero poi vari forum) e dovrebbe poi creare il dumb per l'inserimento dei dati esistenti. Un backup delle tabelle. Ma del tutto dinamico così se si aggiunge una tabella forum non si deve fare altro.

Diciamo che sono riuscito nel mio intento, a metà.. o qualcosina di più.

In ratica l'errore è questo, anche se mi cambia il nome della tabella e prende i nomi giusti delle colonne, va a prendere cmq sempre i dati della stessa tabella (e vi assicuro che i dati delle varie tabelle sono diversi tra loro ).

Mi sono scervellato e non ci arrivo proprio al problema. Magari qualcun'altro lo vede subito

Potete dare un'occhiata al codice?

Eccolo:
Codice PHP:
<?
include_once('includes/config.inc.php');
///////////prendiamo tutte le tabelle e teniamo quelle dei forum///////////////
$tbls mysql_list_tables($dbname);
$num_rows mysql_num_rows($tbls);
$arrtbl=array();
for (
$i 0$i $num_rows$i++){
$tblname=mysql_tablename($tbls$i);
//visualizziamo i nomi e creiamo array con nomi delle tabelle forum
if(substr($tblname,0,3)=="for"){
echo 
"Tabella: ".$tblname."
"
;
$arrtbl[]=$tblname;
}
}
mysql_free_result($tbls);

//////////////inizio lavoro per ogni tabella!!!!!!///////////////////////

$tottext="";

for(
$z=0;$z<=count($arrtbl)-1;$z++){
$tblatt=$arrtbl[$z];
$sqlfields="";
//estrapoliamo i nomi delle colonne della tabella
$docols mysql_query("SHOW COLUMNS FROM ".$tblatt);

$arrcols=array();
if (
mysql_num_rows($docols) > 0) {
//mettiamo tutte le collone in un array
   
while ($row=mysql_fetch_assoc($docols)) {
      
$arrcols[]=$row;
   }
}
//fine if
mysql_free_result($docols);
//mettiamo tutti i campi in una variabile che metteremo poi nella query
for($t=0;$t<=count($arrcols)-1;$t++){
$sqlfields.=$arrcols[$t]['Field'];
if(
$t!=count($arrcols)-1){//mettiamo la virgola tranne se è l'ultimo
$sqlfields.=",";
}
}
//fine secondo for


///////prendiamo i dati dalla tabella attuale
$sqldati="SELECT * FROM ".$tblatt;
$dodati=mysql_query($sqldati,$conn);

//dobbiamo mettere tutte le righe in un array, come facciamo?
while ($datu mysql_fetch_row($dodati)) {
$arrvals[]=$datu;
}
mysql_free_result($dodati);
$vals="";
$testovals="";

for(
$g=0;$g<=count($arrvals)-1;$g++){//per ogni riga trovata
$testovals="(";//apro parentesi che va dopo VALUES 

for($s=0;$s<=count($arrcols)-1;$s++){//per ogni campo
$testovals.="'".$arrvals[$g][$s]."',";
}

$testovals=substr($testovals,0,-1)."),";//chiudo ) e metto , per la prossima riga
$vals.=$testovals;//riga completa
$testovals="";
}



//creiamo il testo che va all'inizio con l'insert ecc
$testofile="#\n#Dumb della tabella ".$tblatt."\n#\nINSERT INTO ".$tblatt." (".$sqlfields.") VALUES ";
//tolgo l'ultima virgola
$tottext.=htmlentities($testofile.substr($vals,0,-1)).";\n\n\n";

}
//fine primo for

echo $tottext;
?>
Grazie in anticipo!