Ver Mensaje Individual
  #8 (permalink)  
Antiguo 28/08/2006, 17:17
Avatar de Belero
Belero
 
Fecha de Ingreso: agosto-2006
Mensajes: 98
Antigüedad: 17 años, 7 meses
Puntos: 0
Ahí va un ejemplo por si quieres guiarte

Guardamos los campos de la tabla en un array que necesitaremos en el php del formulario y en el de meter los datos
Código PHP:
$campos = array(
  
'id' => array(
    
'longitud' => 8,
    
'tipo' => 'int'
  
),
  
'nombre' => array(
    
'longitud' => 100,
    
'tipo' => 'varchar'
  
)
); 
Generamos el formulario con los campos
Código PHP:
function generarFormulario($campos)
{
  
$formulario '<form method="post" action="z2.php">';
  foreach(
$campos AS $clave => $valor)
  {
    switch(
$valor['tipo'])
    {
      case 
'int':
      case 
'varchar':
        
$formulario .= $clave ' <input type="text" name="' $clave '" maxlength="' $valor['longitud'] . '" /><br />';
        break;
      default:
        die(
"Falta tipo de campo para generar formulario.")
    }
  }
  
$formulario .= '<input type="submit" value="Enviar" /></form>';
  
  return 
$formulario;

Comprobamos los datos del formulario
Código PHP:
function comprobarDatos($campos)
{
  
$datos = array();
  foreach(
$campos AS $clave => $valor)
  {
    
$dato $_POST[$clave];

    if(
      empty(
$dato) OR
      
strlen($dato) > $valor['longitud']
    )
    {
      return 
false;
    }

    switch(
$valor['tipo'])
    {
      case 
'int':
        
$dato intval($dato);
        break;
      case 
'varchar':
        
$dato strval($dato);
        break;
      default:
        die(
"Falta tipo de dato para comprobar");
    }
    
    if(empty(
$dato))
    {
      return 
false;
    }

    
$datos[$clave] = $dato;
  }

  return 
$datos;

Generamos la consulta de la bd
Código PHP:
function consultaDb($campos,$datos)
{
  
$nombres = array();
  foreach(
$campos AS $clave => $valor)
  {
    
$nombres[] = $clave;
    
$valores[] = "'" stripslashes($datos[$clave]) . "'";
  }

  
$consulta '
    INSERT INTO tabla(
      ' 
implode(','$nombres) . '
    )VALUES(
      ' 
implode(','$valores) . '
    )
  '
;

  return 
$consulta;

Con todo esto sólo necesitamos 3 páginas: la del array con los datos de los campos de la tabla y las funciones (todo lo de arriba), la del formulario y la que comprueba e inserta los datos. La primera es todo lo de arriba

formulario.php
Código PHP:
require("datos.php");
echo 
generarFormulario($campos); 
comprobar.php
Código PHP:
require("datos.php");
$datos comprobarDatos($campos);

$consulta consultaDb($campos$datos);

// Y ya tenemos la consulta de insertar