Foros del Web » Programando para Internet » PHP »

Como hacer para que un usuario edite sus datos de la bd

Estas en el tema de Como hacer para que un usuario edite sus datos de la bd en el foro de PHP en Foros del Web. Hola, este es mi primer post y tengo unos problemillasa espero que me puedan ayudar. Lo que susede es que tengo dos bd un llamada ...
  #1 (permalink)  
Antiguo 15/01/2011, 04:04
 
Fecha de Ingreso: enero-2011
Ubicación: La copa
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Como hacer para que un usuario edite sus datos de la bd

Hola, este es mi primer post y tengo unos problemillasa espero que me puedan ayudar. Lo que susede es que tengo dos bd un llamada usuarios que en la que se introduce un registro pequeño
Código:
id
usuario
password
email
fecha
Y tengo otra otra que se llama información básica en la cual ya es un poco mas grande como

Código:
id
nombre
ciudad
fecha de nacimiento
Bueno entre otros, pero lo que pasa es que no se como hacer para que cada usuario pueda editar sus propios datos, bueno primero los tiene que introducir para editarlos, digamos que no edite los de otra persona, yo se que en este foro tan GRANDE debe de estar lo que estoy buscando pero el problema es saber donde. Bueno sin mas por el momento me despido.....
  #2 (permalink)  
Antiguo 15/01/2011, 05:15
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Como hacer para que un usuario edite sus datos de la bd

Hola,

Una vez el usuario ha insertado sus datos debes hacer una consulta a la bd solicitando los datos de ese usuario en concreto ej:

Código PHP:
$user=$_SESSION['usuario'];//este dato lo puedes guardar en una variable de sesión cuando el usuario se logea

$sql="select * from informacion where id_usuario=$user"
nota: en la tabla información debe haber un campo que relacione al usuario con la información del mismo ej: id_usuario

Una vez has realizado la consulta solicitando los datos del usuario los muestras por medio de un formulario. Este formulario lo debes enviar a un archivo que actualice los datos del usuario ej:

Código PHP:
$sql="update tabla set campo='dato' where id_usuario=$user"
nota: busca como realizar update de multiples campos

saludos,
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 15/01/2011, 05:26
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Como hacer para que un usuario edite sus datos de la bd

NOTA:
Acabo de ver la respuesta de santris, lo siento.

NOTA 2:

Estoy empezando a creer que tardo muchisimo para hacer una respuesta.

__________________________________________________ ______________

Hola,

Primeramente debes tener una forma para relacionar cada registro de la tabla información básica con los usuarios. Entonces empieza agregandole un campo llamado usuario_id o semejante.

Luego, obten el id del usuario haciendo una primera consulta a la tabla usuarios y guardala en una variable para que se te haga más fácil manipularla.

Finalmente has una consulta a la tabla información básica donde usuario_id=$id (suponiendo que guardaste el id de usuario en la variable $id).

Ahora sólo te resta mostrar los datos obtenidos dentro de inputs y hacer la sintaxis para que al pulsar el botón submit estos datos se actualizen.

Espero haberte ayudado. Suerte!
  #4 (permalink)  
Antiguo 15/01/2011, 17:05
 
Fecha de Ingreso: enero-2011
Ubicación: La copa
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

Ayuda porque no voy entendiendo nada, bueno ya cree el campo user_id en la tabla información básica pero la consulta no me funciona, la hago así:

Bueno esto lo hago para que que se vea el nombre de usuario
<?php
session_start();
echo '<b><a href="/">Inicio</a><a href="/perfil/">'.$_SESSION['k_username'].'</a></b> <a href="http://chochex.comlu.com/login/logout.php">Salir</a>';
?>

Luego hago la consulta así:

<?php
mysql_connect('localhost','user','Password')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('Base de datos')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

$sql = "SELECT usuario FROM usuarios";
$result = mysql_query($sql);
?>

Pero no me sale nada, a ver si me orientan un poco...
  #5 (permalink)  
Antiguo 15/01/2011, 18:46
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Como hacer para que un usuario edite sus datos de la bd

La consulta debe ser algo asi:

Código PHP:
Ver original
  1. $sql = "SELECT * FROM información básica WHERE user_id=$id";
  2. $result = mysql_query($sql);
  3. $row = mysql_fetch_array($result);

Luego haces un form donde muestres dentro de inputs los datos del usuario:

Código HTML:
Ver original
  1. <form method="post" .... />
  2. <input type="text" name="nombre" value="<?php echo $row['nombre'];>" />
  3. ......
  4. </form>

y finalmente creas la sintaxis que se va a ejecutar al hacer submit en el formulario anterior:

Código PHP:
Ver original
  1. $sql = "UPDATE información básica (nombre,campos,etc) VALUES ('".$_POST['nombre']."',...) WHERE user_id=$id";

Cabe indicar que la variable $id es el id de usuario logeado.


A ver si asi la tienes un poco más clara.
  #6 (permalink)  
Antiguo 16/01/2011, 04:26
 
Fecha de Ingreso: enero-2011
Ubicación: La copa
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

Hola otra vez, bueno ya pude avanzar un poco, ya puedo hacer la consulta de esta manera

<?php
mysql_connect('localhost','root','pass')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('BD')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

$usuario = 'Aqui el nombre de usuario';

$result = mysql_query ("SELECT email, fecha FROM usuarios
WHERE usuario = '$usuario'");

while ($row = mysql_fetch_array ($result)) {
?>
<table border="1" cellspacing="3" cellpading="4">

<tr>

<td>Email</td>

<td>Fecha de registro</td>


</tr>


<tr>


<td><?php echo $row['email']; ?></td>

<td><?php echo $row['fecha'];?></td>



</tr>

<?php

}

?>

</table>


Pero no puede hacerlo como tu me dices:


<?php
mysql_connect('localhost','root','pass')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('BD')or die ('Error al seleccionar la Base de Datos: '.mysql_error());


$sql = "SELECT * FROM informacion_basica WHERE user_id=$id";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);


<form method="post" .... />
<input type="text" name="actual" value="<?php echo $row['nombre']; ?>" />
......
</form>

$sql = "UPDATE información básica (nombre,campos,etc) VALUES ('".$_POST['nombre']."',...) WHERE user_id=$id";

?>

A ver si me puedas explicar un poco mejor si eres tan amable...

Última edición por Chochex; 16/01/2011 a las 04:31
  #7 (permalink)  
Antiguo 16/01/2011, 06:14
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Como hacer para que un usuario edite sus datos de la bd

Lo único que te falta es poner los datos que obtienes de la consulta en inputs para que el usuario pueda modificarlos. Entonces has un formulario como te explique:

Código HTML:
Ver original
  1. <form method="post" action="guardar_cambios.php" />
  2. <label for="email />Email: <input type="text" value="<?php echo $row['email']; ?>" name="email" id="email" /></label>
  3. .........................
  4. <input type="submit" value="Guardar cambios" name="submit" id="submit" />

y el archivo guardar_cambios.php debe llevar la sintaxis que te indique, obviamente haciendole las modificaciones del caso.

Saludos
  #8 (permalink)  
Antiguo 17/01/2011, 23:00
 
Fecha de Ingreso: enero-2011
Ubicación: La copa
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Respuesta: Como hacer para que un usuario edite sus datos de la bd

Ten inciensa con migo por favor, lo que pasa es que estoy un poco confundido.
Mira tengo 3 archivos un se llama informacion otro se llama editar y el untimo se llama guardar.

Información contiene este codigo:


Código PHP:
Ver original
  1. <?php
  2. mysql_connect('localhost','user','pass')or die ('Ha fallado la conexión: '.mysql_error());
  3. mysql_select_db('a6647244_user')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  4.  
  5. $usuario = '.$_SESSION['k_username'].';
  6.  
  7. $result = mysql_query ("SELECT email, fecha FROM usuarios
  8. WHERE usuario = '$usuario'");
  9.  
  10. while ($row = mysql_fetch_array ($result)) {
  11.  
  12.                                   echo $row['email'];
  13.  
  14.                                    echo $row['fecha'];
  15. ?>

En este documento obviamente quiero que aparescan los datos del usuario logueado.
Le puse esto porque pense que con esto hay iba a apareser el nombre del usuario logueado pero no..


Código HTML:
Ver original
  1. $usuario = '.$_SESSION['k_username'].';



Ahora el archivo editar que se supone que se veden de editar los datos del user logueado, pero intente de todas maneras y no pude:

Código PHP:
Ver original
  1. <?php
  2. mysql_connect('localhost','user','pass')or die ('Ha fallado la conexión: '.mysql_error());
  3. mysql_select_db('bd')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  4.  
  5.  
  6. $sql = "SELECT * FROM informacion_basica WHERE user_id=$id";
  7. $result = mysql_query($sql);
  8. $row = mysql_fetch_array($result);
  9.  
  10. ?>
  11. <form method="post" action="guardar.php" />
  12. <label for="email />Email: <input type="text" value="<?php echo $row['email']; ?>" name="email" id="email" /></label>
  13. .........................
  14. <input type="submit" value="Guardar" name="submit" id="submit" />

El archivo guardar:
Código PHP:
Ver original
  1. <?php
  2. $sql = "UPDATE informacion_basica (email,) VALUES ('".$_POST['email']."') WHERE user_id=$id";
  3. ?>

Lo que no entiendo es, que es lo que relaciona el campo user_id con el usuario logueado, aver si me sacas de dudas

Última edición por cvander; 18/01/2011 a las 12:17
  #9 (permalink)  
Antiguo 18/01/2011, 01:01
(Desactivado)
 
Fecha de Ingreso: noviembre-2010
Ubicación: Malaga
Mensajes: 225
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

error aqui

Cita:

$result = mysql_query ("SELECT email, fecha FROM usuarios
WHERE usuario = '$usuario'");
es :

Cita:
$result = mysql_query ("SELECT * FROM usuarios
WHERE usuario = '$usuario'");
problema aqui :

Cita:
En este documento obviamente quiero que aparescan los datos del usuario logueado.
Le puse esto porque pense que con esto hay iba a apareser el nombre del usuario logueado pero no..
es :

Código PHP:
session_start();
ob_start();


//aquí  va otro  start para que te funcione la session te lo diría pero envié el portatil a reparar y no puedo  verlo por que no me acuerdo investiga un poco mas de ssesion_start en php.net 


error qui :

Cita:
$sql = "SELECT * FROM informacion_basica WHERE user_id=$id";
Estas tomando la id debes usar $_GET o $_REQUEST para recoger el nombre de usuario tomado desde una cosulta en tu caso $row['nombre']

aqui igual error:

Código PHP:
<?php
$sql 
"UPDATE informacion_basica (email,) VALUES ('".$_POST['email']."') WHERE user_id=$id";
?>
si lo tomas desde el id sin saber que id se refiere no saldra as lo que recomende mas a arriba o as el get o request con el id.

Te arreglare este update :


[PHP]
error aqui

Cita:

$result = mysql_query ("SELECT email, fecha FROM usuarios
WHERE usuario = '$usuario'");
es :

Cita:
$result = mysql_query ("SELECT * FROM usuarios
WHERE usuario = '$usuario'");
problema aqui :

Cita:
En este documento obviamente quiero que aparescan los datos del usuario logueado.
Le puse esto porque pense que con esto hay iba a apareser el nombre del usuario logueado pero no..
es :

Código PHP:
session_start();
ob_start();


//aquí  va otro  start para que te funcione la session te lo diría pero envié el portatil a reparar y no puedo  verlo por que no me acuerdo investiga un poco mas de ssesion_start en php.net 


error qui :

Cita:
$sql = "SELECT * FROM informacion_basica WHERE user_id=$id";
Estas tomando la id debes usar $_GET o $_REQUEST para recoger el nombre de usuario tomado desde una cosulta en tu caso $row['nombre']

aqui igual error:

Código PHP:
<?php

$id
=$_REQUEST['id_usuario']

$sql "UPDATE informacion_basica email='".$_POST['email']."'  WHERE user_id=".$id." "

Espero te alla servido algo de karma no estaria mal chao.
  #10 (permalink)  
Antiguo 18/01/2011, 01:10
(Desactivado)
 
Fecha de Ingreso: noviembre-2010
Ubicación: Malaga
Mensajes: 225
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

No se que a pasado que revise foros del web aqui este mesaje se duplico , muy raro.
  #11 (permalink)  
Antiguo 20/01/2011, 04:07
 
Fecha de Ingreso: enero-2011
Ubicación: La copa
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

ayuduuuuda, no entiendo nada, me come el PHP, no se como vincula el user_id con el usuario logueado no entiendo nada!!!
  #12 (permalink)  
Antiguo 20/01/2011, 06:14
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Como hacer para que un usuario edite sus datos de la bd

Es muy simple pero si se te da el código ya hecho no aprenderás nada y no es la idea.

Te recomiendo que leas el tutorial de PHP de este sitio. De esta manera aprenderás a manejar sesiones y muchisimas otras cosas que te van a ayudar a realizar lo que deseas.


Saludos
  #13 (permalink)  
Antiguo 21/01/2011, 04:30
 
Fecha de Ingreso: enero-2011
Ubicación: La copa
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

Hola otra vez, ya me leí todo el manual de php (eso creo) Pero en realidad no se como relacionar al usuario logueado con las demás bases de datos, como para cuando quiero que el usuario vea su información, o para cuando la quiera editar, o bueno ya sea introducir informacion perteneciente a ese usuario!!! AYUDA PLISS
  #14 (permalink)  
Antiguo 21/01/2011, 05:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Como hacer para que un usuario edite sus datos de la bd

A ver, suponiendo que estas usando session para el logeo. El archivo que comprueba si el usuario existe deberia tener las siguientes líneas:


Código PHP:
Ver original
  1. if($_POST['nick'] != ' ' or $_POST['pw'] != ' ') {
  2.  
  3. //compruebas que exista el usuario
  4.  
  5. $query = mysql_query("SELECT * FROM usuarios WHERE nick='".$_POST['nick']."' AND pw='".$_POST['pw']."' ");
  6.  
  7. //ahora, si el usuario y la contraseña son correctas creas la session
  8.  
  9. if($usuario_datos = mysql_fetch_array($query)) {
  10.  
  11.  
  12. //seguramente aqui haces una redirección con el método que mejor te paresca
  13.  
  14. }
  15.  
  16. //y continúas con el código

Ahora tendrás el id del usuario guardado en la variable $_SESSION['id'].

Espero que esta vez te haya quedado claro. Mucha suerte
  #15 (permalink)  
Antiguo 22/01/2011, 03:02
 
Fecha de Ingreso: enero-2011
Ubicación: La copa
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

Hola otra vez, mira mi código de validación de usuario recopilado de acá "forosdelweb":
En este código no me marca error, por lo que pienso que el error esta en el otro codigo que no me muestra nada, ni me marca error

Código PHP:
Ver original
  1. <?php
  2. //datos para establecer la conexion con la base de mysql.
  3. mysql_connect('xxxx','xxx','xxxx')or die ('Ha fallado la conexión: '.mysql_error());
  4. mysql_select_db('xxxxx')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  5. function quitar($mensaje)
  6. {
  7.     $nopermitidos = array("'",'\\','<','>',"\"");
  8.     $mensaje = str_replace($nopermitidos, "", $mensaje);
  9.     return $mensaje;
  10. }
  11. if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
  12. {
  13.    
  14.     $usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));
  15.     $password = $HTTP_POST_VARS["password"];
  16.     $result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
  17.     if($row = mysql_fetch_array($result)){
  18.         if($row["password"] == $password){
  19.             $_SESSION["k_username"] = $row['usuario'];
  20.                        
  21.                     //acá como veo el codigo que pusiste arriba pienso que esto va aqui
  22.  
  23.                         session_register("id");
  24.                         session_register("usuario");
  25.  
  26.                 //redirecciono como dices tu
  27.  
  28.                                 header('Location: /');
  29.  
  30.  
  31.         }else{
  32.             echo 'Password incorrecto';
  33.         }
  34.     }else{
  35.         echo 'Usuario no existente en la base de datos';
  36.     }
  37.     mysql_free_result($result);
  38. }else{
  39.     echo 'Debe especificar un usuario y password';
  40. }
  41. ?>


En este trato de hacer una pequeña consulta pero no me muestra nada...
Código PHP:
Ver original
  1. <?php
  2. mysql_connect('xxxxx','xxxxxx','xxxxx')or die ('Ha fallado la conexión: '.mysql_error());
  3. mysql_select_db('xxxxxx')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  4.  
  5. //aca creo la variabe
  6. $id = $_SESSION['id'];
  7.  
  8. //se toman los datos "email, fecha"  con el ID del usuario logueado
  9. $result = mysql_query ("SELECT email, fecha FROM usuarios WHERE id = '$id'");
  10.  
  11. //esta linea no estoy seguro para que es, creo que es donde se envian los datos que se van a mostar
  12. while ($row = mysql_fetch_array ($result))
  13. {
  14. ?>
  15. <table border="1" cellspacing="3" cellpading="4">
  16.  
  17.                         <tr>
  18.                     <td>ID</td>
  19.                                    
  20.                                    <td>Email</td>
  21.  
  22.                                    <td>Fecha de registro</td>
  23.                                    
  24.  
  25.                         </tr>
  26.  
  27.  
  28.                         <tr>
  29.                                   //aqui intento mostrar el id del usuario logueado
  30.  
  31.                 <td><?php echo $id; ?></td>
  32.  
  33.                 //aqui el email
  34.                                <td><?php echo $row['email']; ?></td>
  35.  
  36.                                  //aqui la fecha en que se registro
  37.  
  38.                                <td><?php echo $row['fecha'];?></td>
  39.  </tr>
  40.  
  41.                                    <?php
  42.  
  43.                                         }
  44.                                 ?>      
  45.                         </table>

He probado de todas maneras y nada, a ver si me dices donde esta el error?
Saludos desde COSTA RICA
  #16 (permalink)  
Antiguo 22/01/2011, 12:11
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Como hacer para que un usuario edite sus datos de la bd

Código PHP:
Ver original
  1. if($row["password"] == $password){
  2.  
  3. session_register("usuario");
  4.  
  5. $_SESSION["id"] = $row['usuario'];
  6. $_SESSION["usuario"] = $row['usuario'];
  7.  
  8.  
  9.  
  10. header('Location: /');
  11.  
  12. }

Prueba así y la consulta hasla de la siguiente manera:

Código PHP:
Ver original
  1. $result = mysql_query ("SELECT email, fecha FROM usuarios WHERE id = '".$id."'") or die(mysql_error());
  #17 (permalink)  
Antiguo 04/02/2011, 15:47
 
Fecha de Ingreso: enero-2011
Ubicación: La copa
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

Me doy por vencido, sera estudiar mas php, pero de todas maneras muchas gracias!!! Y hasta la próxima (:
  #18 (permalink)  
Antiguo 04/02/2011, 16:01
Avatar de bullarobert  
Fecha de Ingreso: enero-2011
Mensajes: 31
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

men aqui te voy a ayudar... esperame un poco para buscar un codigo simple, dame tu correo y te envio un codigo que hace lo q pides y si vas teniendo dudas me vas diciendo
  #19 (permalink)  
Antiguo 08/02/2011, 18:59
 
Fecha de Ingreso: enero-2011
Ubicación: La copa
Mensajes: 16
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Como hacer para que un usuario edite sus datos de la bd

oye muchas gracias!!! mi correo es [email protected] pero case no paso conectado porque mi messenger no se conecta cuando no actualizo mi pc, pero me puedes buscar por Tony serrano por facebook =) (=

Etiquetas: edite, propios, usuarios
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 23:18.