Foros del Web » Programando para Internet » PHP »

Problema con if, elseif, else

Estas en el tema de Problema con if, elseif, else en el foro de PHP en Foros del Web. Hola, tengo problemas para abrir y cerrar los if y elseif, abro el primer if y luego no puedo continuar con un elseif y me ...
  #1 (permalink)  
Antiguo 14/06/2014, 21:14
 
Fecha de Ingreso: junio-2012
Mensajes: 53
Antigüedad: 10 años, 1 mes
Puntos: 1
Problema con if, elseif, else

Hola, tengo problemas para abrir y cerrar los if y elseif, abro el primer if y luego no puedo continuar con un elseif y me da error, lo tengo asi:

Código PHP:
Ver original
  1. <?php
  2.   // Perfil de los usuarios registrados
  3.     $Usuario = mysql_query("SELECT * FROM ".$db_users." WHERE id_usuario='".$_GET['user']."'") or die(mysql_error());
  4.     if(mysql_num_rows($Usuario)) {
  5.  
  6.   // Buscamos los datos a mostrar del usuario
  7.     $InfoUser = mysql_fetch_array($Usuario);
  8.     $id_usuario = $InfoUser["id_usuario"];
  9.     $nick = $InfoUser["nick"];
  10.     $rango = $InfoUser["rango"];
  11.     $email = $InfoUser["email"];
  12.     $avatar = $InfoUser["avatar"];
  13.     $pais = $InfoUser["pais"];
  14.     $nombre = $InfoUser["nombre"];
  15.     $apellidos = $InfoUser["apellidos"];
  16.     $sexo = $InfoUser["sexo"];
  17.     $envelope = $InfoUser["envelope"];
  18.     $bg_image = $InfoUser["bg_image"];
  19.     $bg_repeat = $InfoUser["bg_repeat"];
  20.     $bg_position_x = $InfoUser["bg_position_x"];
  21.     $bg_color = $InfoUser["bg_color"];
  22.     $border_style = $InfoUser["border_style"];
  23.     $border_color = $InfoUser["border_color"];
  24.     include'ProfileView.php';
  25.     }
  26.  
  27.   // Perfil propio del usuario
  28.     $perfil = mysql_query("SELECT * FROM ".$db_users." WHERE id_usuario='".$_GET['profile']."'") or die(mysql_error());
  29.     if(mysql_num_rows($perfil)) {
  30.  
  31.   // Obtenemos los datos a mostrar del usuario
  32.     $InfoUser = mysql_fetch_array($perfil);
  33.     $id_usuario = $InfoUser["id_usuario"];
  34.     $nick = $InfoUser["nick"];
  35.     $rango = $InfoUser["rango"];
  36.     $email = $InfoUser["email"];
  37.     $avatar = $InfoUser["avatar"];
  38.     $pais = $InfoUser["pais"];
  39.     $nombre = $InfoUser["nombre"];
  40.     $apellidos = $InfoUser["apellidos"];
  41.     $sexo = $InfoUser["sexo"];
  42.     $envelope = $InfoUser["envelope"];
  43.     $bg_image = $InfoUser["bg_image"];
  44.     $bg_repeat = $InfoUser["bg_repeat"];
  45.     $bg_position_x = $InfoUser["bg_position_x"];
  46.     $bg_color = $InfoUser["bg_color"];
  47.     $border_style = $InfoUser["border_style"];
  48.     $border_color = $InfoUser["border_color"];
  49.     include('ProfileUser.php');
  50.     }
  51.  
  52.   // Página de lista de usuarios registrados
  53.     elseif($_GET['page'] == 'users') {
  54.       include'ListUsers.php';
  55.     }
  56.  
  57.   // Inicio de la página de usuarios
  58.     else {
  59.       $sQl = mysql_query("SELECT * FROM ".$db_users." order by nombre");
  60.       include'Inicio.php';
  61.     }
  62. ?>

Hay dos if:
if(mysql_num_rows($Usuario)) {
if(mysql_num_rows($perfil)) {

Luego viene recien el:
elseif($_GET['page'] == 'users') {

y es hay donde se genera el error, alguien me puede ayudar por favor

Última edición por Triby; 15/06/2014 a las 00:45 Razón: Código en highlight
  #2 (permalink)  
Antiguo 15/06/2014, 00:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 14 años
Puntos: 2236
Respuesta: Problema con if, elseif, else

Es que tu lógica está mal, porque intentas leer tanto perfil de otro usuario como del que está conectado, pero sin averiguar primero qué es lo que se está solicitando.

Código PHP:
Ver original
  1. if(isset($_GET['user'])) {
  2.        // Aquí lees perfil de usuario registrado
  3. } elseif(isset($_GET['profile'])) {
  4.        // Aquí lees del propio usuario
  5. } elseif(isset($_GET['page']) && $_GET['page'] == 'users') {
  6.        // Lista de usuarios
  7. } else {
  8.        // Página de inicio
  9. }

Luego, unas observaciones:

1- No le veo sentido a tener dos formas de mostrar perfil, una para usuarios registrados y otra para el "propio usuario", en todo caso, $_GET['user'] para mostrar el perfil, independientemente de quien sea y $_GET['profile'] para ir a formulario de edición del perfil, lógicamente, solo el del propio usuario

2- No estás verificando ni escapando los datos para incluirlos en la consulta, lee esto: http://www.forosdelweb.com/f18/aport...8/#post4265377

3- Estás usando una librería obsoleta para conectarte a base de datos, en el enlace del punto anterior también hay información al respecto
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/06/2014, 07:44
 
Fecha de Ingreso: junio-2012
Mensajes: 53
Antigüedad: 10 años, 1 mes
Puntos: 1
Respuesta: Problema con if, elseif, else

si mejor uso así:

Código:
<?php
session_start();
if(isset($_SESSION['id_usuario'])) {


$SqL = mysql_query("SELECT * FROM ".$db_users."");
	while($Profile = mysql_fetch_assoc($SqL)) {
echo''.$Profile['nick'].'';

}

}
?>
Pero me muestra datos del primer regstro, si pudieras ayudarme a que obtenga los datos de la ID del usuario que lo esta pidiendo

Etiquetas: elseif
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:27.