Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/01/2013, 06:35
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con update en un formulario

Cita:
Bueno como leí en varia paginas que solo hay que cambiar el INSERT POR UPDATE y el VALUE por SET lo hago y no me cambia nada, también ocupo cambiarlo por id
Tu problema no es de PHP, sino de MySQL, o mejor dicho de SQL.
Para resolverlo simplemente deberías haber leído un manual básico, y no atenerte a "comentarios" o "dichos". Los manuales están para eso.
De haber leído un manual, te habrías enterado que la oepración no es "sólo" cambiar INSERT por UPDATE y VALUES por SET, sino que la sintaxis cambia de forma radical.
Tu sentencia se escribiría así:
Código PHP:
Ver original
  1. $que = "UPDATE datos ";
  2. $que .= "SET nombre = '$nombre',  ";
  3. $que .= "   apellido = '$apellido',  ";
  4. $que .= "   ocupacion = '$ocupacion',  ";
  5. $que .= "   edad = $edad,  ";
  6. $que .= "   rfc = '$rfc',  ";
  7. $que .= "   curp = '$curp', ";
  8. $que .= "   sexo = '$sexo', ";
  9. $que .= "   dia = '$dia',  ";
  10. $que .= "   mes = '$mes' ";
Pero esto es insuficiente en un UPDATE, porque escrito así lo que hará es meter esos mismos valores de variables en todos los registros que existan en la tabla, porque ese UPDATE no discrimina.
Ergo, hay que poner condiciones que determinen qué registros se modificarán:

Código PHP:
Ver original
  1. $que .= "WHERE ";
  2. $que .= "   condiciones ";

Lo que va en esas "condiciones" lo debes definir tu.

Fuera de eso, habría algunas consideraciones respecto al diseño aparente de tu tabla, pero el tema excede los límites del foro.Sería para analizar en el de MySQL.

Nota una cosa: No estoy poniendo apostrofos para la edad, y eso es porque los números no se envían a la base como cadenas de texto, sino como números. Cuando envías un numero a un campo numérico como cadena de texto obligas al DBMS a realizar conversiones implícitas (si las acepta, Oracle, por ejemplo, protesta), y las conversiones implícitas reducen la performance si las operaciones afectan muchos registros.
Ten en cuenta eso (la mayoría de los que programan en PHP se olvidan de ese detalle).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)