Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/11/2009, 15:54
Hidek1
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ayuda, crear modulo de imporar datos

Código php:
Ver original
  1. // ***********************************  RESPALDAR DATOS *********************************** \\
  2.     function datos_respaldar() {
  3.         include_once ("common.Class/class.Plantilla.php");
  4.         include_once ("common.Class/class.Base_Datos.php");
  5.         $var_Base_Datos = new Base_Datos ( );
  6.         // --------------------------------- Comienza el paso 1 --------------------------------- \\
  7.         if(!$_POST){ // si no hay post, no generar consultas
  8.             $Contenido = new Plantilla ( "Modules/module.Mantencion/template.datos_respaldar.html" );
  9.             $avanza = "<input type=\"hidden\" name=\"avanza\" value=\"avanza\" />";
  10.             $Contenido->asigna_variables ( array ("avanza" => $avanza ) );
  11.             $ContenidoString = $Contenido->devuelve ();
  12.             return $ContenidoString;
  13.         }
  14.         // --------------------------------- Comienza el paso 2 --------------------------------- \\
  15.         if($_POST["avanza"]){
  16.             $start = microtime(true); // tomo el tiempo que demora generar el backup
  17.             $PG_backup = "";
  18.             $PG_datos = "";
  19.             $consulta1 = "SELECT tablename FROM pg_tables WHERE schemaname = 'public' ;"; // obtengo los nombres de las tablas
  20.             $consulta1 = $var_Base_Datos->consultar($consulta1);
  21.             while($registro = $var_Base_Datos->obtiene_fila($consulta1)){
  22.                 $PG_tabla = $registro["tablename"];
  23.                 $consulta2 = "SELECT column_name FROM information_schema.columns WHERE table_name = '$PG_tabla';"; //obtengo nombres de las columnas
  24.                 $consulta2 = $var_Base_Datos->consultar($consulta2);
  25.                 while($registro2 = $var_Base_Datos->obtiene_fila($consulta2)){
  26.                     $PG_rows_Data[] = $registro2["column_name"]; // agrupo en un array los nombres de columnas
  27.                 }
  28.                 $consulta3 = "SELECT * FROM $PG_tabla"; // obtengo todos los datos de la tabla
  29.                 $consulta3 = $var_Base_Datos->consultar($consulta3);
  30.                 $PG_datos = $PG_datos . "INSERT INTO $PG_tabla VALUES (";
  31.                 if(pg_numrows($consulta3) == 0){
  32.                     $PG_datos = "";
  33.                     $PG_rows_Data = "";
  34.                     continue;
  35.                 } // si la tabla no contiene datos.. no agregar al backup
  36.                 while($registro3 = $var_Base_Datos->obtiene_fila($consulta3)){
  37.                     foreach($PG_rows_Data as $valores){
  38.                         $PG_datos = $PG_datos . "'$registro3[$valores]',";
  39.                     }
  40.                     $PG_datos = $PG_datos . "),(";
  41.                 } // agrupo los valores con formato de insert
  42.                 $PG_datos = str_replace("',)","')",$PG_datos); // elimino las comas demas
  43.                 $PG_datos = substr($PG_datos,0,-2).";\n\n"; // elimino fallo al error de cada insert
  44.                 $PG_backup = $PG_backup . $PG_datos; // agrego los datos al backup
  45.                 $PG_datos = ""; // limpio variables temporales
  46.                 $PG_rows_Data = ""; // limpio variables temporales
  47.             }
  48.             $URL_PG_backup = urlencode($PG_backup); // codifico los datos para evitar conflictos por comillas
  49.             $end = microtime(true);
  50.             $record = $end - $start; // tiempo que tardo en hacer el backup
  51.             $respaldos = "
  52.             <b>Backup Generado correctamente en $record sg.</b><br><br>
  53.             <input type=\"hidden\" value=\"$URL_PG_backup\" name=\"URL_PG_backup\" />
  54.             <input type=\"button\" value=\"Descargar\" class=\"sis_login\" onclick=\"document.formulario.action='Modules/module.Mantencion/descargarSql.php'; document.formulario.submit();\" />
  55.             "; //envio los datos cambiando la direccion del formulario para su proseso de descarga
  56.             $Contenido = new Plantilla ( "Modules/module.Mantencion/template.datos_respaldar.html" );
  57.             $Contenido->asigna_variables ( array ("respaldos" => $respaldos ) );
  58.             $ContenidoString = $Contenido->devuelve ();
  59.             return $ContenidoString;
  60.         }
  61.     }


esta funcion la ise ase algun tiempo quiza te de una idea


saludos!!!
__________________
More about me...
~ @rhyudek1
~ Github