Foros del Web » Programando para Internet » PHP »

Actualizar estado de un perfil

Estas en el tema de Actualizar estado de un perfil en el foro de PHP en Foros del Web. Hola a todos: llevo una semana volviendome loco con esto, mirando en todo el foro pero no consigo solucionarlo. Estoy intentando actualizar el estado de ...
  #1 (permalink)  
Antiguo 18/09/2011, 02:28
 
Fecha de Ingreso: septiembre-2011
Mensajes: 5
Antigüedad: 12 años, 7 meses
Puntos: 0
Actualizar estado de un perfil

Hola a todos: llevo una semana volviendome loco con esto, mirando en todo el foro pero no consigo solucionarlo.

Estoy intentando actualizar el estado de un perfil pero no hay manera, el problema creo que está en la variable $registro que no está recogiendo correctamente el valor de la id de la tabla por lo que en la linea mysql_query("UPDATE perfil SET estado='$estado' WHERE id=('$registro')",$link); no hace el update.
Si pongo:
mysql_query("UPDATE perfil SET estado='$estado' WHERE id=('1')",$link)
<?php, donde el '1'es el valor de la id de la tabla perfil que corresponde con la id de la tabla usuarios funciona perfectamente.
Pongo el codigo completo, gracias

session_start();
if ($_SESSION['autentificado'] != "si" )
{
// no se ha entrado, redirigir a la página de login
header ("Location: index.html");
exit;
}
?>
<?PHP
include ("conectar.php");
$estado=$_REQUEST['estado'];
$estadopersonal=$_REQUEST['estadopersonal'];
$nick=$_SESSION['usuario'];
$registro=@mysql_query("select id from usuarios where nick='".$nick."'",$link) or die("Problemas en la seleccion de miembros");

if (@mysql_num_rows($registro) == 1)
{
mysql_query("UPDATE perfil SET estado='$estado' WHERE id=('$registro')",$link);
mysql_query("UPDATE perfil SET estadopersonal='$estadopersonal' WHERE id=('$registro')",$link);
header("Location:perfil.php")
or die("Problemas en el select".mysql_error());
mysql_close($link);
}else{
header("Location:registro2.php");
}
?>
  #2 (permalink)  
Antiguo 18/09/2011, 03:37
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Actualizar estado de un perfil

Cita:
Iniciado por Montana1672 Ver Mensaje
mysql_query("UPDATE perfil SET estado='$estado' WHERE id=('$registro')",$link);
mysql_query("UPDATE perfil SET estadopersonal='$estadopersonal' WHERE id=('$registro')",$link);
En el WHERE de la sentencia SQL sobran los paréntesis.

No es:

"UPDATE perfil SET estado='$estado' WHERE id=('$registro')"

sino:

"UPDATE perfil SET estado='$estado' WHERE id='$registro'"

Espero que te ayude.
  #3 (permalink)  
Antiguo 18/09/2011, 08:33
 
Fecha de Ingreso: septiembre-2011
Mensajes: 5
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Actualizar estado de un perfil

Gracias por contestar, ya lo he solucionado, el problema era que no declaraba bien la variable $id, al final me ha quedado asi el codigo por si alguien se encuentra con el mismo problema

<?php
session_start();
if ($_SESSION['autentificado'] != "si" )
{
// no se ha entrado, redirigir a la página de login
header ("Location: index.html");
exit;
}
?>
<?PHP
include ("conectar.php");
//$pass1 = md5($_REQUEST['pass1']);
$estado=$_REQUEST['estado'];
$estadopersonal=$_REQUEST['estadopersonal'];
$nick=$_SESSION['usuario'];
$result = mysql_query('SELECT id FROM usuarios WHERE nick=\''.$nick.'\'');
$registro=mysql_query("select nick from usuarios where nick='".$nick."'",$link) or die("Problemas en la seleccion de miembros");
$row = mysql_fetch_array($result);
$id=$row[id];

if (@mysql_num_rows($registro) == 1)
{
mysql_query("UPDATE perfil SET estado='$estado' WHERE id='$id'",$link);
mysql_query("UPDATE perfil SET estadopersonal='$estadopersonal' WHERE id='$id'",$link);
header("Location:perfil.php")
or die("Problemas en el select".mysql_error());
mysql_close($link);
}else{
header("Location:registro2.php");
}
?>

Etiquetas: estado, html, mysql, perfil, registro, sql, tabla, variables, 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 02:53.