Ver Mensaje Individual
  #9 (permalink)  
Antiguo 16/02/2004, 12:29
Avatar de Manoloweb
Manoloweb
 
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Bueno, ya estas cerca del final.

Solo recuerda que los datos dentro de $_SESSION['variables'] se encuentran en un array (Campo => Valor).

En caso de que tus campos del formulario coincidan exactamente con los de tu tabla en la base de datos, puedes hacer un recorrido por cada registro para convertirlo a una instrucción correcta de SQL...

Primero debes decidir si los valores que se van a insertar tienen todos el mismo formato (Por ejemplo son todos TEXTOS, o todos NUMEROS), o si deberás hacer alguna separación entre los que tienen un valor numérico y los que tienen cadenas.

Si el caso es cualquiera de los dos primeros (todos de un mismo tipo) la cosa se facilita, pues algo así te funcionaría:

Código PHP:
$variables=$_SESSION['variables'];
foreach (
$variables as $campo => $valor) {
    
$campos[]=$campo;
    
$valores[]="'".$valor."'"//Esto si todos fueran textos
}

//Ahora creas el query...

$sql="INSERT INTO tabla (implode(",",$campos)) VALUES (implode(",",$valores))";

// Y luego corres el query... 
Sin embargo me parece casi imposible que una tabla de 130 campos tenga solo campos tipo VARCHAR o TEXT. Si los campos se encuentran combinados (unos de numeros y otros de cadenas) y la lógica de tu tabla coincide con la de tu formulario, pudieras afrontarlo de esta manera:

Código PHP:
$variables=$_SESSION['variables'];
foreach (
$variables as $campo => $valor) {
    
$campos[]=$campo;
    
$valores[]= (is_numeric($valor)) ? $valor "'".$valor."'"// Aqui esta la diferencia
}

//Ahora creas el query...

$sql="INSERT INTO tabla (implode(",",$campos)) VALUES (implode(",",$valores))";

// Y luego corres el query... 
Pero si ninguno de estos casos aplica en tu problema... entonces tienes mas trabajo que hacer, por ejemplo crear un array con los nombres de tus campos y un valor que le deje saber al sistema que tipo de campo esperar...

Algo así como:

Código PHP:
$tipodevalor = array (
    
"nombre" => "cadena",
    
"edad" => "numero",
    
"calle" => "cadena",
    
"nacimiento" => "fecha"
    
// Etcetera, para todos tus 130 campos
    
)

// Entonces, al llegar a la asignacion del valor, comparas el campo
// y determinas como lo vas a insertar...

$variables=$_SESSION['variables'];
foreach (
$variables as $campo => $valor) {
    
$campos[]=$campo;
    switch (
$tipodevalor[$campo]) {
        case 
"cadena":
        
$valores[]= "'".$valor."'";
        break;
        case 
"numero":
        
$valores[]= $valor;
        break;
        case 
"fecha":
        
$valores[]= "'".$valor."'";
        break;
        default:  
//Por si alguno se te olvida... je je
        
$valores[]= "'".$valor."'";
        break;
    }


Bueno, eso debe darte una idea...

__________________
Manoloweb