Foros del Web » Programando para Internet » PHP »

Clase para exportar de MySQL a Dbase

Estas en el tema de Clase para exportar de MySQL a Dbase en el foro de PHP en Foros del Web. Hola buenos dias, bueno yo dado donde trabajo manejo 2 bases de datos, y ps me tuve que diseñar una clasesita para no estar utilizando ...
  #1 (permalink)  
Antiguo 06/08/2010, 07:57
Avatar de pepeverastegui  
Fecha de Ingreso: septiembre-2008
Ubicación: Pedernales, Michoacan
Mensajes: 82
Antigüedad: 15 años, 7 meses
Puntos: 2
Clase para exportar de MySQL a Dbase

Hola buenos dias, bueno yo dado donde trabajo manejo 2 bases de datos, y ps me tuve que diseñar una clasesita para no estar utilizando el mismo codigo una y otra vez, ahi les paso mi codigo para el que lo necesite

la clase ya esta probada y funcionando.

al mandar llamar la funcion te pide 1 o 2 parametros.
1 --- el nombre de la tabla de MySQL.
2 --- el nombre de la base de datos de dbase (si no existe el archivo se llamara igual que en MySQL.

y listo, te generara un archivo dbase con los mismos campos de MySQL longitud y precision, asi como los registros de la tabla.

Código PHP:
//y ya para mandar a llamar la clase ps un ejemplito
<?php
$mysql 
mysql_connect("localhost""usuario""clave");
mysql_select_db("base_de_datos");

require_once 
"./exportar.class.php";
$exportar = new exportar("tabla1""basenueva");
// la linea anterior creara una una base de datos en dbase llamada basenueva 
// identica a  tabla1 de mysql

// o tambien 

$exportar = new exportar("tabla1");
// la linea anterior creara una una base de datos en dbase llamada tabla1 
// identica a  tabla1 de mysql
?>
y aqui esta la clase
Código PHP:
//exportar.class.php
<?php
class exportar
{
   function 
exportar($param1$param2="")
   {
      if(empty(
$param2))
         
$param2 $param1;

      if(
$res1 mysql_query("SHOW FULL FIELDS FROM " $param1))
      {
         
$est_dbf = array();
         while(
$row1 mysql_fetch_object($res1))
         {
            
$despues strstr($row1->Type"(");
            
$pos     strpos($row1->Type"(");
            
$antes   substr($row1->Type0$pos);

            
$despues str_replace("("""$despues);
            
$despues str_replace(")"""$despues);

            
$arr_dat explode(","$despues);

            switch(
$antes)
            {
               case (
$antes == "char" or $antes == "varchar"):
                  
$antes "CHARACTER";
                  break;
               case (
$antes == "tinytext" or $antes == "mediumtext" or $antes == "longtext"):
                  
$antes "CHARACTER";
                  
$arr_dat[0] = 255;
                  break;
               case (
$antes == "decimal" or $antes == "int" or $antes == "double" or 
                     
$antes == "float" or $antes == "smallint" or $antes == "mediumint" or 
                     
$antes == "bigint"):
                  
$antes "NUMBER";
                  break;
               case (
$antes == "bool" or $antes == "tinyint" or $antes == "binary" or 
                     
$antes == "varbinary"):
                  
$antes "LOGICAL";
                  unset(
$arr_dat);
                  break;
               case (
$antes == "datetime" or $antes == "date"):
                  
$antes "DATE";
                  unset(
$arr_dat);
                  break;
               default:
                  continue;
            }

            if(
count($arr_dat) == 2)
               
$est_dbf[] = array($row1->Field$antes$arr_dat[0], $arr_dat[1]);
            else if(
count($arr_dat) == 1)
               
$est_dbf[] = array($row1->Field$antes$arr_dat[0]);
            else
               
$est_dbf[] = array($row1->Field$antes);
         }
         if(
dbase_create($param1.".dbf"$est_dbf))
         {
            if(
$dbase dbase_open($param1.".dbf""2"))
            {
               
$res2 mysql_query("SELECT * FROM ".$param1);
               while(
$row2 mysql_fetch_row($res2))
               {
                  
dbase_add_record($dbase$row2);
               } 
               
dbase_Close($dbase);
               
header("Content-type: application/octet-stream");
               
header("Content-Disposition: attachment; filename=".$param1.".dbf"); 
               
readfile($param1.".dbf");
            }
            else
               return;
         }
         else
            return;
      }
      else
         return;
   }
}
?>
__________________
Ing. Jesus Verastegui
http://www.micharanga.com.mx
http://pepeverastegui.blogspot.com
  #2 (permalink)  
Antiguo 06/08/2010, 08:18
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Clase para exportar de MySQL a Dbase

solo una critica constructiva, eso es tan solo una funcion dentro de la palabra class, tal vez deberias dejarla como funcion ya que no utilizas nada de objetos ahi adentro

saludos
  #3 (permalink)  
Antiguo 06/08/2010, 08:31
Avatar de pepeverastegui  
Fecha de Ingreso: septiembre-2008
Ubicación: Pedernales, Michoacan
Mensajes: 82
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Clase para exportar de MySQL a Dbase

correcto, lo checare.

gracias
__________________
Ing. Jesus Verastegui
http://www.micharanga.com.mx
http://pepeverastegui.blogspot.com

Etiquetas: clase, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:36.