Foros del Web » Programando para Internet » PHP »

manejo de inserción de datos con sesiones

Estas en el tema de manejo de inserción de datos con sesiones en el foro de PHP en Foros del Web. Hola alguno de uds saben como manejar formularios con php que al enviar los datos los mismos se guardan en sesiones para luego ser reunidos ...
  #1 (permalink)  
Antiguo 15/02/2004, 20:22
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta manejo de inserción de datos con sesiones

Hola alguno de uds saben como manejar formularios con php que al enviar los datos los mismos se guardan en sesiones para luego ser reunidos y insertados en la base de datos?


salu2
  #2 (permalink)  
Antiguo 15/02/2004, 21:27
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
creo que tu pregunta abarca una respuesta bastante amplia, pero basta con que leas algun tutorial sobre variables de sesión y manejar bien los arreglos... saludos
  #3 (permalink)  
Antiguo 15/02/2004, 21:41
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
cluster es experto en sesiones siempre aconseja trabajar con sesiones en formularios puesto que es mejor y efectivo como el lo dice.
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #4 (permalink)  
Antiguo 15/02/2004, 23:04
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Mi sugerencia es que vayas guardando los resultados en una ariable de sesión. Mas o menos así:

$_SESSION["generales"]=$_POST;

y en la siguiente página:

$_SESSION["domicilio"]=$_POST;

Y así continúas hasta completar todos los formularios relacionados.

Al final puedes extraer los datos mas o menos así:

$generales=$_SESSION["generales"];
$domicilio=$_SESSION["domicilio"];

De tal forma que puedas usarlos así:

echo "Tu nombre es: ".$generales["nombre"]." ".$generales["apellido"];

echo "Y vives en : ".$domicilio["calle"]." ".$domicilio["numero"];

Espero que quede claro el concepto.



Salud!!
__________________
Manoloweb
  #5 (permalink)  
Antiguo 15/02/2004, 23:06
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Exclamación form

La cuestion manolo es que tengo 320 campos en la tabla y pues hablando con cluster la otra vez me recomendo utilizar sesiones, lo que yo te entiendo es que del formulario 1, agarre todas las variables y las procese en el formulario 2 y asi en el 3 y en el 4 que es el final en mi diseño hay si extraigo todas esas variables y las inserto en mi consulta sql.

no sé si estaré haciendo lo correcto
  #6 (permalink)  
Antiguo 16/02/2004, 06:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En tus formularios que vas creando hasta llegar al final del proceso donde recogeras esos "300" campos que has ido generando en tus X formularios ... puedes ir recogiendo el array POST o GET (según el method que uses en tus formularios) para no tener que saber los nombres de los campos. Sólo lo harás al final de tu proceso para la validación final de tus variables y el proceso en sí que le des (a tu BD o donde destines esos datos).

Ejemplo:

proces_form1.php
Código PHP:
<?
session_start
();
// Recoge el array POST entero hacia una variable (será un array)
$_SESSION['variables']=$_POST;

// validas este formulario si lo requires ...

// Y saltamos al siguiente formulario ...
header ("Location: form2.php");
exit;
?>
procesa_form2.php
Código PHP:
<?
session_start
();
// Sumo el array que ya tengo del anterior formulario con el que generé en el formulario que estoy procesando ...
// El mismo proceso es igual para N formularios que pueda tener ..
$_SESSION['variables']=array_merge($_SESSION['variables'],$_POST);

// Validas si es necesario ...

// Y saltamos al siguiente formulario ...
header ("Location: form3.php");
exit;
?>
En el formulario último de proceso .. en $_SESSION['variables'] tendrás un "mega" array con todas las variables de tus N formularios con el nombre que le distes en tus formularios .. sólo que ahora .. si "de normal" accedes por $_POST['nombre_variable'] ahora lo tienes en $_SESSION['variables']['nombrevariable'] .. Puedes hacer también:

$variables=$_SESSION['variables'] y trabajarlo como un array de una dimesión normal ..

$variables['nombrevariable'] .. o aplicar un list() each() para dejartelo como $nombrevariables o como mas te acomode trabajar todo ese montón de variables.

Al viajar todas tus variables en un array .. te facilitará hacer validaciones tipo "campos requeridos" en tu script final de proceso donde puedes usar funciones como in_array() para checkear los campos requeridos .. o bucles foreach() aplicados a ese array para validar todas o grupos de variables si cumplen alguna condición (ejemplo: is_numeric() .. por si han de ser digitos .. o más complejo aplicar expresiones regulares si llega el caso).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 16/02/2004, 09:43
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta form

Ok cluster ya hice el paso de todos los campos entre paginas mediantes sesiones, pero en la ultima pagina que es la que inserta en la bd yo quiero extraer todos los campos de ese array e insertarlo en la base de datos.

tendria que hacer un extract post de la sesion variable?

Código PHP:

extract
($_SESSION);

$variables=$_SESSION['variables'];


$sql="INSERT INTO tabla ($variables) VALUES ('$variables')";


mysql_query($sql) or die("Error en consulta <br>MySQL dice: ".mysql_error());

echo 
"Los Datos han sido ingresados correctamente!"
intenté esto y obtuve el error

Error en consulta
MySQL dice: Unknown column 'Array' in 'field list'

tengo q extraer ese array pero no se como

salu2

Última edición por andinistas; 16/02/2004 a las 10:19
  #8 (permalink)  
Antiguo 16/02/2004, 12:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te sucede por qué .. $_SESSION es un array si, es cierto ..pero a su vez puede llevar variables de todo tipo .. por ejemplo otros arrays .. como es el caso.

Si usas extrac() para dejar tus variabels como globales $variable .. debes aplicarlo a:


Código PHP:
$variables=$_SESSION['variables'];
extrac($variables); 
Y .. bueno .. ese extrac() no pone tus variabels separadas por comas como así requier los parámetros del INSERT (sintax SQL) ni tampoco variables contiene el nombre del campo y valor .. para eso debes hacer:

Código PHP:
foreach ($variables as $indice => $valor){
echo 
$indice."=>".$valor."<br>";

Tambien puedes usar implode() para generar tu lista de valores desde el array $variables (y concatenarlo con la , (coma)) ...

A todo esto . .¿validas tus datos? .. si pretendes ir recogiendo todo lo que viaje en los formularios y no validar nada por ahorrarte unas líneas de código en tu INSERT .. tienes que tener muchoooo cuidado. VALIDA siempre los datos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 16/02/2004, 12:29
Avatar de 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
  #10 (permalink)  
Antiguo 16/02/2004, 12:35
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Exclamación form

Clusteer la validación de datos ya la tengo preestablecida por javascript, ahora tengo un error en el extract que me dice:

Fatal error: Call to undefined function: extrac() in /var/www/html/retornos/send1.php on line 24

ok pero te explico mejor mi form de 4 partes.

parte1.php tengo el form que envia por post al parte2.php

en parte2.php tengo

Código PHP:

if ($HTTP_POST_VARS){ 

// Sumo el array que ya tengo del anterior formulario con el que generé en el formulario que estoy procesando ...
session_start();
// Recoge el array POST entero hacia una variable (será un array)
$_SESSION['variables']=$_POST;



en parte3.php tengo

Código PHP:
if ($HTTP_POST_VARS){ 

session_start();
// Sumo el array que ya tengo del anterior formulario con el que generé en el formulario que estoy procesando ...
// El mismo proceso es igual para N formularios que pueda tener ..
 
$_SESSION['variables']=array_merge($_SESSION['variables'],$_POST);



en parte4.php tengo

Código PHP:
if ($HTTP_POST_VARS){ 

session_start();
// Sumo el array que ya tengo del anterior formulario con el que generé en el formulario que estoy procesando ...
// El mismo proceso es igual para N formularios que pueda tener ..
 
$_SESSION['variables']=array_merge($_SESSION['variables'],$_POST);



luego de esto en el form parte4.php en el action uso otr archivo que se llama send1.php y ahi tengo

Código PHP:
$variables=$_SESSION['variables'];
extrac($variables);

foreach (
$variables as $indice => $valor){
echo 
$indice."=>".$valor."<br>";


bueno con este ultimo file send1.php queria comprobar si todos los campos estan viajando pero me da ese error en el extract? hay otra forma de extraer esos valores del array?

Última edición por andinistas; 16/02/2004 a las 12:38
  #11 (permalink)  
Antiguo 16/02/2004, 13:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Andinista .. la validación por javascript NOOOOOOOO es suficiente ni es seguro. DEBES hacer una validación minima en PHP .. por lo menos sobre los campos requeridos y tipo de estos. (Manoloweb te puso ya ejemplos )

----

Si vas a usar el foreach() no uses el extract() (con "t" .. )

Revisa lo que hace esa función en:
http://www.php.net/manual/en/function.extract.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 17/02/2004, 12:55
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta :-D

ok muchachos probe con las diferentes maneras que manoloweb propuso pero nada mas me ha servido la ultima


Código PHP:
$tipodevalor = array (
    
"fecharegistro" => "DATE",
    
"departamento" => "VARCHAR",
    
"dos" => "VARCHAR",
    
"ciudad" => "VARCHAR",
    
"ciudaddos" => "VARCHAR",
    
"a01" => "VARCHAR",
    
"a02" => "VARCHAR",
    
"a03" => "VARCHAR",
    
"a04" => "VARCHAR",
    
"fechades" => "DATE",
    
"fecharet" => "DATE",
    
"a05" => "TEXT",
    
"a06"  => "CHAR",
    
"a07" => "CHAR",
    
"a08" => "CHAR",
    
"a09" => "CHAR",
    
"a10" => "CHAR",
    
"a11" => "CHAR",
    
"a12" => "CHAR",
    
"a13" => "CHAR",
    
"a14" => "CHAR",
    
"a15" => "CHAR",
    
"a16" => "CHAR",
    
"a17" => "CHAR",
    
"a18" => "CHAR",
    
"a19" => "CHAR",
    
"a20" => "CHAR",
    
"a21" => "VARCHAR",
    
"a22" => "CHAR",
    
"a23" => "CHAR",
    
"a24" => "CHAR",
    
"a25" => "CHAR",
    
"a26" => "VARCHAR",
    
"a27" => "CHAR",
    
"a28" => "VARCHAR",
    
"a29" => "CHAR",
    
"a30" => "VARCHAR",
    
"a31" => "CHAR",
    
"a32" => "VARCHAR",
    
"a33" => "CHAR",
    
"a34" => "VARCHAR",
    
"a35" => "VARCHAR",
    
"a36" => "VARCHAR",
    
"a37" => "VARCHAR",
    
"a38" => "VARCHAR",
    
"a39" => "VARCHAR",
    
"a40" => "VARCHAR",
    
"a41" => "VARCHAR",
    
"a42" => "VARCHAR",
    
"a43" => "VARCHAR",
    
"a44" => "VARCHAR",
    
"a45" => "VARCHAR",
    
"a46" => "TEXT",
    
"b01" => "CHAR",
    
"b02" => "CHAR",
    
"b03" => "CHAR",
    
"b04" => "CHAR",
    
"b05" => "CHAR",
    
"b06" => "CHAR",
    
"b07" => "TEXT",
    
"b08" => "CHAR",
    
"b09" => "CHAR",
    
"b10" => "TEXT",
    
"b11" => "CHAR",
    
"b12" => "CHAR",
    
"b13" => "CHAR",
    
"b14" => "CHAR",
    
"b15" => "CHAR",
    
"b16" => "CHAR",
    
"b17" => "CHAR",
    
"b18" => "CHAR",
    
"b19" => "CHAR",
    
"b20" => "CHAR",
    
"b21" => "CHAR",
    
"b22" => "CHAR",
    
"b23" => "VARCHAR",
    
"b24" => "VARCHAR",
    
"b25" => "VARCHAR",
    
"b26" => "VARCHAR",
    
"b27" => "VARCHAR",
    
"b28" => "VARCHAR",
    
"b29" => "VARCHAR",
    
"b30" => "VARCHAR",
    
"b31" => "VARCHAR",
    
"b32" => "VARCHAR",
    
"b33" => "VARCHAR",
    
"b34" => "VARCHAR",
    
"b35" => "VARCHAR",
    
"b36" => "VARCHAR",
    
"b37" => "VARCHAR",
    
"b38" => "VARCHAR",
    
"b39" => "VARCHAR",
    
"b40" => "VARCHAR",
    
"b41" => "VARCHAR",
    
"b42" => "VARCHAR",
    
"b43" => "VARCHAR",
    
"b44" => "VARCHAR",
    
"b45" => "VARCHAR",
    
"b46" => "VARCHAR",
    
"b47" => "VARCHAR",
    
"b48" => "VARCHAR",
    
"b49" => "VARCHAR",
    
"b50" => "VARCHAR",
    
"b51" => "VARCHAR",
    
"b52" => "VARCHAR",
    
"b53" => "VARCHAR",
    
"b54" => "VARCHAR",
    
"b55" => "VARCHAR",
    
"b56" => "VARCHAR",
    
"b57" => "VARCHAR",
    
"b58" => "VARCHAR",
    
"b59" => "VARCHAR",
    
"b60" => "VARCHAR",
    
"b61" => "VARCHAR",
    
"b62" => "VARCHAR",
    
"b63" => "VARCHAR",
    
"b64" => "VARCHAR",
    
"b65" => "VARCHAR",
    
"b66" => "VARCHAR",
    
"b67" => "TEXT",
    
"b68" => "CHAR",
    
"b69" => "CHAR",
    
"b70" => "TEXT",
    
"c01" => "CHAR",
    
"c02" => "VARCHAR",
    
"c03" => "VARCHAR",
    
"c04" => "VARCHAR",
    
"c05" => "VARCHAR",
    
"c06" => "VARCHAR",
    
"c07" => "VARCHAR",
    
"c08" => "CHAR",
    
"c09" => "VARCHAR",
    
"c10" => "VARCHAR",
    
"c11" => "VARCHAR",
    
"c12" => "VARCHAR",
    
"c13" => "VARCHAR",
    
"c14" => "VARCHAR",
    
"c15" => "CHAR",
    
"c16" => "VARCHAR",
    
"c17" => "VARCHAR",
    
"c18" => "VARCHAR",
    
"c19" => "VARCHAR",
    
"c20" => "VARCHAR",
    
"c21" => "VARCHAR",
    
"c22" => "CHAR",
    
"c23" => "VARCHAR",
    
"c24" => "VARCHAR",
    
"c25" => "VARCHAR",
    
"c26" => "VARCHAR",
    
"c27" => "VARCHAR",
    
"c28" => "VARCHAR",
    
"c29" => "CHAR",
    
"c30" => "VARCHAR",
    
"c31" => "VARCHAR",
    
"c32" => "VARCHAR",
    
"c33" => "VARCHAR",
    
"c34" => "VARCHAR",
    
"c35" => "VARCHAR",
    
"c36" => "VARCHAR",
    
"c37" => "VARCHAR",
    
"c38" => "VARCHAR",
    
"c39" => "VARCHAR",
    
"c40" => "VARCHAR",
    
"c41" => "VARCHAR",
    
"c42" => "VARCHAR",
    
"c43" => "VARCHAR",
    
"c44" => "VARCHAR",
    
"c45" => "VARCHAR",
    
"c46" => "VARCHAR",
    
"c47" => "VARCHAR",
    
"c48" => "VARCHAR",
    
"c49" => "VARCHAR",
    
"c50" => "VARCHAR",
    
"c51" => "VARCHAR",
    
"c52" => "VARCHAR",
    
"c53" => "VARCHAR",
    
"c54" => "VARCHAR",
    
"c55" => "VARCHAR",
    
"c56" => "VARCHAR",
    
"c57" => "VARCHAR",
    
"c58" => "VARCHAR",
    
"c59" => "VARCHAR",
    
"c60" => "VARCHAR",
    
"c61" => "VARCHAR",
    
"c62" => "VARCHAR",
    
"c63" => "VARCHAR",
    
"c64" => "VARCHAR",
    
"c65" => "VARCHAR",
    
"c66" => "CHAR",
    
"c67" => "VARCHAR",
    
"c68" => "CHAR",
    
"c69" => "VARCHAR",
    
"c70" => "CHAR",
    
"c71" => "VARCHAR",
    
"c72" => "CHAR",
    
"c73" => "VARCHAR",
    
"c74" => "CHAR",
    
"c75" => "VARCHAR",
    
"c76" => "CHAR",
    
"c77" => "VARCHAR",
    
"c78" => "TEXT",
    
"c79" => "VARCHAR",
    
"c80" => "VARCHAR",
    
"c81" => "VARCHAR",
    
"c82" => "VARCHAR",
    
"c83" => "VARCHAR",
    
"c84" => "VARCHAR",
    
"c85" => "VARCHAR",
    
"c86" => "VARCHAR",
    
"c87" => "VARCHAR",
    
"c88" => "VARCHAR",
    
"c89" => "VARCHAR",
    
"c90" => "VARCHAR",
    
"c91" => "VARCHAR",
    
"c92" => "VARCHAR",
    
"c93" => "VARCHAR",
    
"c94" => "VARCHAR",
    
"c95" => "VARCHAR",
    
"c96" => "VARCHAR",
    
"c97" => "VARCHAR",
    
"c98" => "VARCHAR",
    
"c99" => "VARCHAR",
    
"c100" => "VARCHAR",
    
"c101" => "VARCHAR",
    
"c102" => "VARCHAR",
    
"c103" => "VARCHAR",
    
"c104" => "VARCHAR",
    
"c105" => "VARCHAR",
    
"c106" => "VARCHAR",
    
"c107" => "VARCHAR",
    
"c108" => "VARCHAR",
    
"c109" => "VARCHAR",
    
"c110" => "VARCHAR",
    
"c111" => "TEXT",
    
"c112" => "TEXT",
    
"c113" => "TEXT",
    
"c114" => "TEXT",
    
"c115" => "TEXT",
    
"d01" => "VARCHAR"
    
"d02" => "VARCHAR"
    
"d03" => "VARCHAR"
    
"d04" => "VARCHAR"
    
"d05" => "VARCHAR"
    
"d06" => "VARCHAR"
    
"d07" => "VARCHAR"
    
"d08" => "VARCHAR",     
    
"d09" => "VARCHAR"
    
"d10" => "VARCHAR"
    
"d11" => "VARCHAR"
    
"d12" => "VARCHAR"
    
"d13" => "VARCHAR"
    
"d14" => "VARCHAR"
    
"d15" => "VARCHAR"
    
"d16" => "VARCHAR"
    
"d17" => "VARCHAR"
    
"d18" => "VARCHAR"
    
"d19" => "VARCHAR"
    
"d20" => "VARCHAR"
    
"d21" => "VARCHAR"
    
"d22" => "VARCHAR"
    
"d23" => "VARCHAR"
    
"d24" => "VARCHAR"
    
"d25" => "VARCHAR"
    
"d26" => "VARCHAR"
    
"d27" => "VARCHAR"
    
"d28" => "VARCHAR"
    
"d29" => "VARCHAR"
    
"d30" => "VARCHAR"
    
"d31" => "VARCHAR"
    
"d32" => "VARCHAR"
    
"d33" => "VARCHAR"
    
"d34" => "VARCHAR"
    
"d35" => "VARCHAR"
    
"d36" => "VARCHAR"
    
"d37" => "VARCHAR"
    
"d38" => "VARCHAR"
    
"d39" => "VARCHAR"
    
"d40" => "VARCHAR"
    
"d41" => "VARCHAR"
    
"d42" => "VARCHAR"
    
"d43" => "VARCHAR"
    
"d44" => "VARCHAR"
    
"d45" => "TEXT",
    
"d46" => "CHAR",
    
"d47" => "CHAR",
    
"d48" => "CHAR",
    
"d49" => "CHAR",
    
"d50" => "CHAR",
    
"d51" => "CHAR",
    
"d52" => "CHAR",
    
"d53" => "CHAR",
    
"d54" => "CHAR",
    
"d55" => "CHAR",
    
"d56" => "TEXT",
    
"d57" => "VARCHAR"
    
"d58" => "TEXT",
    
"d59" => "VARCHAR"
    
"d60" => "TEXT",
    
"d61" => "TEXT",
    
"d62" => "VARCHAR"
    
"d63" => "TEXT",
    
"d64" => "TEXT",
    
"d65" => "TEXT"
    
);

// 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 
"VARCHAR":
        
$valores[]= "'".$valor."'";
        break;
        case 
"CHAR":
        
$valores[]= "'".$valor."'";
        break;
        case 
"TEXT":
        
$valores[]= $valor;
        break;
        case 
"DATE":
        
$valores[]= "'".$valor."'";
        break;
        default:  
//Por si alguno se te olvida
        
$valores[]= "'".$valor."'";
        break;
    }
}


estoy confundido aqui porque si inserto $variables $valorme da un error de consulta () Error en consulta 
MySQL dice
Unknown column 'Array' in 'field list'

y de esta forma me inserta datos nullos como si no viajaran los valores!

$sql="INSERT INTO retornos ($campo) VALUES ('$valor')";
mysql_query($sql) or die("Error en consulta <br>MySQL dice: ".mysql_error());
echo 
"Los Datos han sido ingresados correctamente!";
?> 

les pido un poco de paciencia y que me aconsejen y disculpen por que no sé manejar bien esta area
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 14:49.