Foros del Web » Programando para Internet » PHP »

Aporte:::-> Generador De Formularios A Base De Una Base Dedatos Automaticamente!

Estas en el tema de Aporte:::-> Generador De Formularios A Base De Una Base Dedatos Automaticamente! en el foro de PHP en Foros del Web. Bueno no se si estaré reinventando la rueda pero en estos días he querido programar un poco y despejar la mente jugando a hacer algo.. ...
  #1 (permalink)  
Antiguo 23/04/2008, 21:11
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Aporte:::-> Generador De Formularios A Base De Una Base Dedatos Automaticamente!

Bueno no se si estaré reinventando la rueda pero en estos días he querido programar un poco y despejar la mente jugando a hacer algo.. así que me di a la tarea de hacer unas cuantas funciones que se convirtió en clase y es la cual les voy a mostrar aquí.




Que hace generadorForm ?

Generador Form permite extraer las columnas de una base de datos y generar de ellas campos input para luego insertar valores en dicha tabla.

Como puedo usarla ?

Generador Form es muy sencilla solo debes iniciar la clase.

Código PHP:
 $gf = new generadorForm(); 
luego conectarnos a al servidor Mysql usando la siguiente método.

Código PHP:
  $gf->conexionDb('[Host]','[Usuario]','[Clave]'); 
Ya con esto estamos casi listos para generar nuestro formulario automáticamente.

Código PHP:
 $gf->generarFormulario(' [columnas] ',' [tabla] ',' [Nombre Boton Enviar] ',' [bloquear campo [INT]] ',' [tipo Bloqueo (readonly,hidden,text)] '); 
Ya generamos nuestro formulario en este momento ahora debemos asegurarnos que lo insertemos en nuestra base de datos , para ello usaremos esta función.

Código PHP:
  $gf->insertar(); 
Con esto hemos insertado nuestro formulario en la tabla y columnas seleccionadas.

Como estoy seguro de que la Query del form es la que yo exactamente quise ?

Para ello esta el método mostrarSql el cual se encarga de mostrar el SQL generado por el generador Form. y se usa de la siguiente manera.

Código PHP:
  $gf->mostrarSql(); 
NOTA IMPORTANTE -> AL USAR LA CLASE ACEPTAS ESTOS TÉRMINOS Y CONDICIONES

1- Si haces algún cambio lo publiques
2- Puedes Regalarla y venderla y si deseas puedes remunerar al autor
3- Dejaras los derechos del autor en la clase en todo momento que la uses.
4- seré feliz con la clase.

generadorForm.php

Código PHP:

 <?

 
/*
   
 
 */

 
class generadorForm {
   
   private 
$db;
   private 
$columna;
   private 
$tabla;
   private 
$boton;
   private 
$bloquear;
   private 
$tipo;
    
   private 
$host;
   private 
$usuario;
   private 
$clave;
   

   
       
       
   public function 
conexionDb($host,$usuario,$clave)
   {
    
       
$this->host    $host;
       
$this->usuario $usuario;
       
$this->clave   $clave;
      
      
$conexion =  mysql_connect($this->host,$this->usuario,$this->clave) or die('ERROR:'.mysql_errno());
      return 
true;
       
    }
    
    

   public  function 
generarFormulario($columna,$tabla,$db,$boton,$bloquear,$tipo)
     { 
       
$this->columna  $columna;       
       
$this->tabla    $tabla;       
       
$this->boton    $boton;       
       
$this->db       $db;
       
$this->bloquear $bloquear;
       
$this->campo    $campo;
       
$this->tipo     $tipo;
       
       
         
mysql_select_db($this->db) or die('ERROR:'.mysql_errno());
       
         
$sql "SELECT ".$this->columna." FROM ".$this->tabla;        
       
         
$query mysql_query($sql) or die('ERROR:'.mysql_errno());
       
         echo 
'<form method="POST">';
         
         
       
         
$i 0;
       
           while(
$i mysql_num_fields($query))
           {  
              
$sel_tipo = array();
              
              
$sel_tipo['readonly']  = 'readonly="true"';
              
$sel_tipo['hidden']    = 'type="hidden"';
              
$sel_tipo['text']      = 'type="text"';
         
               if(
$i == $this->bloquear)
               {
                                     
                echo 
'<input '.$sel_tipo[$this->tipo].' name="campos['.mysql_field_name($query,$i).']" id="campos['.mysql_field_name($query,$i).']" value="'.mysql_field_name($query,$i).'"><BR><BR>';
     
               }
      
             else {
             
            
                echo 
'<input type="text"  name="campos['.mysql_field_name($query,$i).']" id="campos['.mysql_field_name($query,$i).']" value="'.mysql_field_name($query,$i).'"><BR><BR>';
  
                  } 
                  
               
$i++;
  
           } 
 
               echo 
'<input type="submit" name="boton" id="boton" value="'.$this->boton.'">';
            
               echo 
'</form>';
             
           return 
true;
       
     }
     
     public function 
insertar()
     {
            
            
            if(isset(
$_POST['boton']))
            {  
  
               
$db_query.= "INSERT INTO ".$this->tabla." VALUES ( ";
              
               
$total_campos count($_POST['campos'])-1;
              
               
$i=0;
              
                foreach(
$_POST['campos'] as $campo)
                { 
                  
                     
$db_query .= " '$campo'";
                    
                     
$db_query .=($i != $total_campos)?",":");";
                     
                     
$i++;
                    
                }
      
                   
mysql_query($db_query) or die("<script> alert(\"ERROR: ".mysql_errno()." - ".mysql_error()." $db_query\"); </script>");
                   
                   
$this->sql $db_query;
       
            }
            
            return 
true;
                
            
    }
            
            
            public function 
mostrarSql()
            {
                 echo 
$this->sql;
                 return 
true;
            }
            
            

}
?>
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.

Última edición por eddwinpaz; 31/10/2008 a las 18:15
  #2 (permalink)  
Antiguo 24/04/2008, 21:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Aporte:::-> Generador De Formularios A Base De Una Base Dedatos Automaticamente!

Hola edwinpaz,

Creo si realmente quieres hacer una clase, deberías de investigar un poco más sobre patrones y de programación orientada a objetos, como abstraer y como sobre cargar datos, ya que tu clase aunque cumple su prometido, podría ser mas poderosa.

Saludos.
  #3 (permalink)  
Antiguo 24/04/2008, 21:32
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: Aporte:::-> Generador De Formularios A Base De Una Base Dedatos Automaticamente!

Gracias por los comentarios actualmente..
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.

Última edición por eddwinpaz; 31/10/2008 a las 18:15
  #4 (permalink)  
Antiguo 24/04/2008, 23:24
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
De acuerdo Re: Aporte:::-> Generador De Formularios A Base De Una Base Dedatos Automaticamente!

vale men nos comentas y si tienes algun ejemplo en linea seria bueno

saludos
__________________
gerardo
  #5 (permalink)  
Antiguo 24/04/2008, 23:58
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: Aporte:::-> Generador De Formularios A Base De Una Base Dedatos Automaticamente!

Gracias por los comentarios...
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.

Última edición por eddwinpaz; 31/10/2008 a las 18:14
  #6 (permalink)  
Antiguo 25/04/2008, 00:02
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: Aporte:::-> Generador De Formularios A Base De Una Base Dedatos Automaticamente!

Estara online el link solo 1 semana puesto que no estoy autorizado para crear base de datos en la empresa.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
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.
Tema Cerrado

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 23:01.