Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2008, 21:11
Avatar de eddwinpaz
eddwinpaz
 
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 17 años, 4 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