ho un problema visto ke fra poco aprirò un nuovo sito ho voluto farmi uno script ke mi fa il backup di ftp e database, ma sul secondo ho un problema: quando recuopero i dati mi salva tutti i database e le tabelle mentre i dati ke ci sono dentro funzionano solo su alcune tabelle.

ecco il codice:

codice:
<? 
include('config.php'); 
class dump_db 
{ 
  function dump_db() 
  { 
    global $host, $user, $pass, $cr_db; 
    $this->host = $host; 
    $this->user = $user; 
    $this->pass = $pass; 
    $this->cr_db = $cr_db; 
     
    if( $this->connetti() == false ) 
    { 
      die(mysql_error()); 
    } 
  } 
   
  function connetti() 
  { 
    if( ($this->db = mysql_connect($this->host, $this->user, $this->pass)) == false ) 
    { 
      return false; 
    } 
    return true; 
  } 
   
  function dump() 
  { 
    $back = ''; 
    $query = mysql_query("SHOW DATABASES", $this->db) or die(mysql_error()); 
    for( $x = 0; $x < mysql_num_rows($query); $x++ ) 
    { 
      $database = mysql_result($query, $x); 
      if( $this->cr_db ) 
      { 
        $back .= "CREATE DATABASE `{$database}`;\n\n"; 
      } 
      $new_query = mysql_query("SHOW TABLES FROM {$database}", $this->db) or die(mysql_error()); 
      for($i = 0; $i < mysql_num_rows($new_query); $i++ ) 
      { 
        $re = mysql_result($new_query, $i); 
        $back .= " CREATE TABLE `{$re}` (\n"; 
        $nquery = mysql_query("SHOW COLUMNS FROM {$database}.{$re}", $this->db) or die(mysql_error()); 
        for( $k = 0; $k < mysql_num_rows($nquery); $k++ ) 
        { 
          $colun = mysql_result($nquery, $k, true); 
          $tb = mysql_result($nquery, $k); 
          $campo = $tb; 
          $my = mysql_query("SHOW COLUMNS FROM {$database}.{$re} LIKE '{$campo}'") or die(mysql_error()); 
          $rmy = mysql_fetch_array($my); 
          $back .= ' `'.$campo.'`' . ' ' . $rmy['Type']; 
          $back .= ($rmy['Extra'] != '') ? ' '.$rmy['Extra'] : ''; 
          $back .= ($rmy['Key'] != '') ? ' PRIMARY KEY' : ''; 
          if( $k+1 != mysql_num_rows($nquery) ) 
          { 
            $back .= ","; 
          } 
          $back .= "\n"; 
        } 
        $st = mysql_db_query($database, "SHOW TABLE STATUS LIKE '{$re}'", $this->db) or die(mysql_error()); 
        $rst = mysql_fetch_array($st) or die(mysql_error()); 
        $eng = $rst['Engine']; 
        $aut = ($rst['Auto_increment'] == '') ? 1 : $rst['Auto_increment']; 
        $back .= ") ENGINE={$eng} AUTO_INCREMENT={$aut};\n\n"; 
        @set_time_limit(120); 
        $campi = mysql_query("SHOW COLUMNS FROM {$database}.{$re}") or die(mysql_error()); 
        $tot_campi = ''; 
        $a = 1; 
        while( $rc = mysql_fetch_array($campi) ) 
        { 
          $tot_campi .= '`'.$rc['Field'].'`'; 
          if( $a != mysql_num_rows($campi) ) 
          { 
            $tot_campi .= ', '; 
          } 
          $a++; 
        } 
      } 
      $tc = $tot_campi; 
      $tot_campi = ''; 
      $a = 1; 
      $qq = @mysql_query("SELECT * FROM {$database}.{$re}", $this->db) or die(mysql_error()); 
      while( $rq = @mysql_fetch_array($qq) ) 
      { 
        $back .= "INSERT INTO `{$re}` ($tc) VALUES ("; 
        $cc = explode(', ', $tc); 
        for( $z = 0; $z < count($cc); $z++ ) 
        { 
          $back .= "'".$rq[$z]."'"; 
          if($z+1 != count($cc)) 
          { 
            $back .= ', '; 
          } 
        } 
        $back .= ");\n"; 
      } 
      $back .= "\n"; 
    } 
    $this->back = $back; 
    return $back; 
  } 
   
  function create_file() 
  { 
    $filename = 'dump_db_' . date('d-m-y') . '.sql.gz'; 
    $handle = gzopen($filename, 'wb9'); 
    if( gzwrite($handle, $this->dump(), strlen($this->dump())) ) 
    { 
      return true; 
    } 
    else 
    { 
      return false; 
    } 
    gzclose($handle); 
  } 
} 
$back = new dump_db(); 
echo nl2br($back->dump()); 
/*if( $back->create_file() ) 
{ 
  echo "Il backup dei database è stato eseguito con successo"; 
} 
else 
{ 
  die('Errore durante l\'esportazione del database'); 
}*/ 
?>
ciao ^__^