Problema consulta php+mysql

B1x1t0

Buenas a todos.

Estoy intentando hacer una página web (php + mysql) para actualizar los datos de los perfiles de usuario (nombre, apellido, email, password, localidad, provincia, etc...). Algunos de los campos son input, y otros son select como los de provincia.

He probado haciendo un :

if (iiset ($nombre) { .... update nombre='$nombre' where id=... }
if (iiset ($apellido) { .... update apellido='$apellido' where id=... }
...
else... { }
Pero solo me actualizaba cuando solo insertaba un solo dato en el formulario

Despues cambie por:
if (iiset ($nombre) { .... update nombre='$nombre' where id=... }
elseif (iiset ($apellido) { .... update apellido='$apellido' where id=... }
...
else.. { }
Pero o solo me actualizaba un dato (cuando solo insertaba uno) o daba error cuando lo intentaba con mas de uno,

Ya desesperada pensé en hacer una única sentancia update para todos los campos, pero claro está, nada

(Como ultima opcion (si no me queda tiempo), insertaré un formulario por cada campo y que el usuario actualice de uno en uno, pero eso no es nada "vistoso".

Si teneis idea de como construir el update para todos los campos... os estaría eternamente agradecida.
Un saludo, gracias! =3

Buffoncete

Primero un comentario, si un usuario tiene 20 campos, para actualizarlo, vas a hacer 20 consultas ?

Luego cuando tengo que hacer una consulta o un update con atributos variables, empalmo strings.

if(isset($nombre_att))nombre = "nombre = '".$nombre_att."'";
if(isset($apellido_att))apellido = "apellido = '".$apellido_att."'";

al final tu update es un concatenado de variables.

$sql = "UPDATE .....".nombre_att.apellido_att etc

B1x1t0

Gracias por la rapidez.
Estoy ahora mismo en las practicas, cuando llegue a casa lo pruebo. =)

NeB1

Yo suelo hacer lo siguiente:
$updates = array();
if(!empty($POST['nombre'])) $updates[] = "nombre='".$POST['nombre']."'";
if(!empty($_POST['apellido'])) $updates[]...

i al final:

$updates = implode(", ", $updates);

Así me evito la tontería de que no te ponga una coma antes ni una coma después xD

LR

Como tu por estos lares?? xDD

No te compliques, la mejor opcion es la que dice #4.

PD: a ver cuando me llamas y vamos a tomar algo que me tienes abandonao! :S

Usuarios habituales

  • LR
  • NeB1
  • B1x1t0
  • Buffoncete