Ver Mensaje Individual
  #8 (permalink)  
Antiguo 14/05/2009, 07:05
Avatar de rodno
rodno
 
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 3 meses
Puntos: 43
De acuerdo Respuesta: ayuda con importacion de tablas desde un archivo

Buenas,

Aqui publico las Funciones para exportar e importar una base de datos:
Es solo los DATOS DE LAS TABLAS

Código PHP:
function ExportarDB()
{
         
$con_base mysql_connect("localhost""root""rodno123");
        
$base "personal";
        
$tablas mysql_query("show tables from $base; "$con_base);
       
        
$cant_tablas=0;
        
$cant_tablas_recorridas=0;
        
$contador=0;
        if (
$tablas) {
            while (
$tabla mysql_fetch_array($tablas)) 
            {

           
                                     
                 
                    
$mitabla $tabla[0];
                    
$cant_tablas++;
                    
                    
$datos mysql_query("select * from $base.$mitabla;"$con_base);
                    if (
$datos
                    {
                        
$cant_tablas_recorridas++;
                        
                        
$campos mysql_num_fields($datos);
                        
$regs mysql_num_rows($datos);
                        for (
$i 0$i $regs$i++) {
                            
$inserta "insert into $mitabla(";
                            for (
$j 0$j $campos$j++) {

                                
$nombre mysql_field_name($datos$j);
                                
$inserta .= "$nombre,";
                            }
                            
$inserta substr($inserta0strlen($inserta) - 1) . ") values(";
                            for (
$j 0$j $campos$j++) {
                                
$tipo mysql_field_type($datos$j);
                                
$valor mysql_result($datos$i$j);
                                switch (
$tipo) {
                                    case 
"string":
                                    case 
"date":
                                    case 
"time":
                                        
$valor "'$valor'";
                                        break;
                                }
                                
$inserta .= "$valor,";
                            }
                            
$inserta substr($inserta0strlen($inserta) - 1) . ");*/*";
                            
$texto .= $inserta;
                            
$contador++;
                        }
                         
                    } else
                        return 
false;

                 
                
            }
           
           
$texto.=strlen($texto);
          if (
$cant_tablas==$cant_tablas_recorridas
          return 
base64_encode($texto);
          else
          return 
false;
           }
            return 
false;
         
        

      
   
}

function 
ImportarBaseD($file)
{
 
$conexion mysql_connect("localhost""root""rodno123");
 
mysql_select_db("personal",$conexion);
 
$sql="TRUNCATE tabla1;
TRUNCATE tabla2;"
;// Estas son las Consultas para limpiar todas las tablas donde se van a insertar los datos 
if ($conexion)
 { 

     
$file_content file($file);
     foreach(
$file_content as $sql_line => $sql_lines )
       {
        
$sql_text=base64_decode($sql_lines);    
        }
  
$Array_SQL=explode(";*/*",$sql_text);
  
$cantsql=count($Array_SQL)-1;
   
$cant_char=strlen($sql_text)-strlen($Array_SQL[$cantsql]);
        if (
$cant_char==$Array_SQL[$cantsql])
        {
             
$sqlvaciar=explode(";",$sql);
           for (
$i=0$i<count($sqlvaciar);$i++)
            {
              if(!
mysql_query($sqlvaciar[$i],$conexion))
                {
                 break;
                 
                 
mysql_close($conexion);
                 return 
false;
                    }
             }    
            
         for (
$i=0$i<$cantsql ;$i++)
             if (!
mysql_query($Array_SQL[$i],$conexion))
               {
                 break;
                 
                 
mysql_close($conexion);
                 return 
false;
                }
    }
    else
    return 
false;
 }
 else
  return 
false;
mysql_close($conexion);
return 
true;

Ejemplo para exportar:
Código PHP:
$texto_cod=ExportarDB();
          if (
$texto_cod
          { 
            
$fecha date("dmY_His");
            
$archivo "Salva_" $fecha ".dsql";
            
$file_exportar fopen("temp/" $archivo"w+");
            
//$texto_cod=base64_encode($texto);
            
            
if (fwrite($file_exportar$texto_cod))
               {
                
fclose($file_exportar);
            echo 
"<center>Se leyeron los Datos correctamente y estan listos para:<br><br></center> ";
            echo 
'<center><a href="file.php?filename='.$archivo.'">Exportar y Guardar</a></center>';
               }
            else echo 
"Error, contacte con el Administrador del Software"
          }
        else
            echo 
"Error, contacte con el Administrador del Software"
Ejemplo para importar:
Código PHP:
if (ImportarBaseD($_FILES['filesalva']['tmp_name'])) 
                
                
                echo 
"<br><center>Se ha completado la Carga de los datos correctamente.</center>";
            
                else
                echo 
"<br><center>Error.</center>"
este scripts debera llamarse file.php:
Código PHP:
$archivo=$_GET['filename'];
 if (
file_exists("temp/".$archivo.""))
   {
       
$file=fopen("temp/".$archivo."","r");
       
header("Content-disposition: attachment;filename=".$archivo."");
    
header("Content-Type: application/force-download");

       while (!
feof($file))
        {
    
$texto fgetss($file1024);
    echo 
$texto;
       }
       
fclose($file);
     
unlink("temp/".$archivo."");
     
   }
   else
   echo 
"Error al Cargar Datos"
Saludos y Disculpen la Demora, y si les hace falta exportar e importar todo, estructura y todo me postean

Última edición por rodno; 14/05/2009 a las 07:43 Razón: Se me olvidava poner unas cositas en exportar