Foros del Web » Programando para Internet » PHP »

Sql Update

Estas en el tema de Sql Update en el foro de PHP en Foros del Web. Hola quiero actualizar una serie de campos que me traigo por un post de una página anterior, pero no sé si el codigo estará bien ...
  #1 (permalink)  
Antiguo 05/04/2004, 10:27
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
Pregunta Sql Update

Hola quiero actualizar una serie de campos que me traigo por un post de una página anterior, pero no sé si el codigo estará bien porque me da errror

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);

$variables=$_SESSION['variables'];

$tipodevalor = array (
    
"fecharegistro" => "DATE",
    
"persona" => "VARCHAR",
    
"departamento" => "VARCHAR",
    
"dos" => "VARCHAR",
    
"ciudad" => "VARCHAR",
    
"ciudaddos" => "VARCHAR",
    
"a01" => "VARCHAR",
    
"a02" => "VARCHAR",
    
"a03" => "VARCHAR",
    
"a04" => "VARCHAR",
    
"fechades" => "DATE",
    
"fecharet" => "DATE",
    
"otrasfechas" => "TEXT",
    
"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");

$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: 
        
$valores[]= "'".$valor."'";
        break;
    }
}

$sql="UPDATE tabla SET (".implode(",",$campos).") = (".implode(",",$valores).")";

mysql_query($sql) or die("Error en consulta <br>MySQL dice: ".mysql_error()); 
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #2 (permalink)  
Antiguo 05/04/2004, 11:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Insisto ..

Si te dá algún tipo de error . .Hazlo saber a todos los que te puedan ayudar indicando que error es el que tienes. Tienes que ponerlo fácil para quien pretenda ayudarte ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 05/04/2004, 11:10
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Una preguntita, ¿de donde has sacado esa sintaxis de UPDATE? Porque de http://www.mysql.com/doc/en/UPDATE.html me parece que no.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 05/04/2004, 11:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Parece que te va a tocar usar un bucle foreach() por ejemplo (o tal vez un for() va mejor para controlar el último bloque y no poner el , (coma) de separador ...) para generar tus bloques de:

$variable = '$valor',

para componer tu sentencia UPDATE como su sintax indica ..


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 05/04/2004, 11:42
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Por cierto, ¿un UPDATE sin WHERE? Entonces actualizara todos los registros de la tabla. Quizas es lo que quieres, o quizas no.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 13:03.