Foros del Web » Programando para Internet » PHP »

Modificar usuarios

Estas en el tema de Modificar usuarios en el foro de PHP en Foros del Web. Hola! Estoy haciendo el codigo php para mosrar los usuarios de una base de datos. Aparecen los datos nombre, apellidos, email... al lado el icono ...
  #1 (permalink)  
Antiguo 02/04/2008, 14:55
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 8 meses
Puntos: 5
Modificar usuarios

Hola!
Estoy haciendo el codigo php para mosrar los usuarios de una base de datos. Aparecen los datos nombre, apellidos, email... al lado el icono de una papelera para borrar el usuario y al lado el botón de un lápiz para modificar los datos.

cuando le doy al lápiz, me lleva a un php con el código:

Código PHP:
<?php
  $conexion
=mysql_connect("localhost","root","");
  
mysql_select_db("neotech",$conexion);
  
$misql="SELECT * FROM usuarios WHERE login='$user'";
  if(
$resultado=mysql_query($misql,$conexion))
  {
         if(
$arrayresultado=mysql_fetch_array($resultado))
         {
                   echo 
$arrayresultado[0];
                   echo 
"<input type='text' name='nom' value=$arrayresultado[1]";
                   echo 
"<input type='text' name='ape' value=$arrayresultado[3]";
                   echo 
"<input type='text' name='ema' value=$arrayresultado[4]";
                   echo 
"<input type='submit' value='OK'>";
         }
  }
  
mysql_close();
?>
(falta el <form>) En este php modifico los campos y cuando le doy a OK, me dirige a otro php cuyo código es:

Código PHP:
<?php
  $nom
=$_POST["nom"];
  
$ape=$_POST["ape"];
  
$ema=$_POST["ema"];

  
$conexion=mysql_connect("localhost","root","");
  
mysql_select_db("neotech",$conexion);
  
$misql="UPDATE usuarios SET nombre='$nom', apellidos='$ape', email='$ema'";
  
mysql_query($misql,$conexion);
  
mysql_close();
  
header("location:users1.php");
?>
Cuando ejecuto estos PHP, lo que he modificado se aplica a todos los usuarios. imagino porque la instrucción del segundo PHP "UPDATE" actualiza a todos los registros. ¿Como hago para que solo actúe sobre el usuario a modificar?

Gracias
  #2 (permalink)  
Antiguo 02/04/2008, 15:05
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Re: Modificar usuarios

para modificar t falta la funcion GET
Código PHP:
$columna"1";
if (isset(
$_GET['id'])) {
  
$columna = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);

para q recojas el articulo seleccionado

saludos
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #3 (permalink)  
Antiguo 02/04/2008, 15:07
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 11 meses
Puntos: 11
Re: Modificar usuarios

Hola cslbcn,

A tu sentencia SQL:
Código PHP:
$misql="UPDATE usuarios SET nombre='$nom', apellidos='$ape', email='$ema'"
le falta la condición. Debes indicar algun tipo de clave, por ejemplo

Código PHP:
where id '"$id.'" 
Si no usas Where entonces modificará toda la tabla.

Quedaría algo así:

Código PHP:
$id = (int) $_POST['id'];
$misql="UPDATE usuarios SET nombre='$nom', apellidos='$ape', email='$ema' WHERE id='".$id."'"
Al ID lo mandas desdee el formulario.
Cuando haces la consulta para traer los datos del usuario, tambien traes el id y lo pones en un campo oculto. Luego cuando guardas va el ID como POST y lo usas para ponerlo en la condición WHERE.

Leyendo la sentencia que usaste erronea en español:
Cita:

Actualizar el campo nombre con $nom, apellido con $ape y email con $ema.
Leyendo la consulta correcta sería:

Cita:
Actualizar el campo nombre con $nom, apellido con $ape y email con $ema DONDE EL ID VALE 3
El "3" es un ejemplo correpondiente a la clave única (id) de cad usuario que lo debería haber configurado en tu tabla de la base de datos. El campo ID debería ser la clave principal y autoincrementable.

Actualizar

Saludos
  #4 (permalink)  
Antiguo 02/04/2008, 15:09
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: Modificar usuarios

Código PHP:
$misql="UPDATE usuarios SET nombre='$nom', apellidos='$ape', email='$ema'" WHERE login='$user' 

Le falta un where a esa consulta , seria actualiza los datos "de" usuario cuando login sea igual a user o hacerlo por id o no se que otros campos tenes.

Asi?
  #5 (permalink)  
Antiguo 02/04/2008, 15:10
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 8 meses
Puntos: 5
Re: Modificar usuarios

que es eso? :)
Y una forma más sencilla? Es de verdad, no entiendo eso
  #6 (permalink)  
Antiguo 02/04/2008, 15:13
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: Modificar usuarios

ahi t edijeron una , si tenes un campo id unico por usuairos podes actualizar datos cuando el usuario tenga esa id.

recojes el id y actualizas los datos del usuario que tengas esa id

Código PHP:
$id = (int) $_POST['id'];
$misql="UPDATE usuarios SET nombre='$nom', apellidos='$ape', email='$ema' WHERE id='".$id."'"
Salu2
  #7 (permalink)  
Antiguo 02/04/2008, 15:14
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 8 meses
Puntos: 5
Re: Modificar usuarios

Cita:
Iniciado por cslbcn Ver Mensaje
que es eso? :)
Y una forma más sencilla? Es de verdad, no entiendo eso

ok la ultima respuesta me quita las dudas
muchas gracias a los 2
  #8 (permalink)  
Antiguo 02/04/2008, 15:14
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 11 meses
Puntos: 11
Re: Modificar usuarios

Lee mi respuesta más arriba allí te explico en que consiste.
  #9 (permalink)  
Antiguo 02/04/2008, 15:26
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 8 meses
Puntos: 5
Re: Modificar usuarios

Pero en que parte del primer PHP pongo la variable que luego recogerá el segundo php ?
  #10 (permalink)  
Antiguo 02/04/2008, 15:29
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: Modificar usuarios

Prueba asi

Código PHP:
<?php
  $nom
=$_POST["nom"];
  
$ape=$_POST["ape"];
  
$ema=$_POST["ema"];
   
$id = (int) $_POST['id'];

  
$conexion=mysql_connect("localhost","root","");
  
mysql_select_db("neotech",$conexion);
  
$misql="UPDATE usuarios SET nombre='$nom', apellidos='$ape', email='$ema' WHERE id='".$id."'";  

  
mysql_query($misql,$conexion);
  
mysql_close();
  
header("location:users1.php");
?>
Salu2
  #11 (permalink)  
Antiguo 02/04/2008, 15:35
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 8 meses
Puntos: 5
Re: Modificar usuarios

Me refiero dentro de este php

Código PHP:
<?php 
  $conexion
=mysql_connect("localhost","root",""); 
  
mysql_select_db("neotech",$conexion); 
  
$misql="SELECT * FROM usuarios WHERE login='$user'"
  if(
$resultado=mysql_query($misql,$conexion)) 
  { 
         if(
$arrayresultado=mysql_fetch_array($resultado)) 
         { 
                   echo 
$arrayresultado[0]; 
                   echo 
"<input type='text' name='nom' value=$arrayresultado[1]"
                   echo 
"<input type='text' name='ape' value=$arrayresultado[3]"
                   echo 
"<input type='text' name='ema' value=$arrayresultado[4]"
                   echo 
"<input type='submit' value='OK'>"
         } 
  } 
  
mysql_close(); 
?>
  #12 (permalink)  
Antiguo 02/04/2008, 15:40
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 11 meses
Puntos: 11
Re: Modificar usuarios

<input name="id" type="hidden" value="$arrayresultado[x]" />

Reemplaza "x" por el numero corerespondiente a la columna id de la base.
O como estás usando mysql_fetch_array tambien lo puede poner así:

<input name="id" type="hidden" value="$arrayresultado[id]" />

Si se llama id el campo en tu base.

Fíjate que es un campo oculto, no se puede modificar. CUando envíes el resultado además de todos los datos modificados también cuentas con el id.

Quedaría:

Código PHP:
<?php  
  $conexion
=mysql_connect("localhost","root","");  
  
mysql_select_db("neotech",$conexion);  
  
$misql="SELECT * FROM usuarios WHERE login='$user'";  
  if(
$resultado=mysql_query($misql,$conexion))  
  {  
         if(
$arrayresultado=mysql_fetch_array($resultado))  
         { 
                   echo 
"<input type='hidden' name='id' value=$arrayresultado[0]";
                   echo 
"<input type='text' name='nom' value=$arrayresultado[1]";  
                   echo 
"<input type='text' name='ape' value=$arrayresultado[3]";  
                   echo 
"<input type='text' name='ema' value=$arrayresultado[4]";  
                   echo 
"<input type='submit' value='OK'>";
         }  
  }  
  
mysql_close();  
?>
Saludos
  #13 (permalink)  
Antiguo 02/04/2008, 15:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 8 meses
Puntos: 5
Re: Modificar usuarios

Oh!!! Funciona!! Muchisimas gracias!!! Sabeis un webo XDDDD
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:57.