Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas con consulta.

Estas en el tema de Problemas con consulta. en el foro de PHP en Foros del Web. Buenas tardes amigos. Estoy intentando realizar una búsqueda simple, si se conecta específicamente un usuario, se muestre una tabla, con un juego de registros, y ...
  #1 (permalink)  
Antiguo 21/02/2014, 18:18
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 9 meses
Puntos: 2
Problemas con consulta.

Buenas tardes amigos.

Estoy intentando realizar una búsqueda simple, si se conecta específicamente un usuario, se muestre una tabla, con un juego de registros, y esto lo estoy intentando hacer con un case, pero al ejecutarlo no me trae resultados.

Aquí el código, si alguien ve uno o mil errores, les pido me ayuden a resolverlo. :( Gracias.

Código PHP:
 <?php switch($_SESSION['MM_Username']) {  
                      
       case 
'BESPINOZA':
         
?>
       
       <table width="541" border="5" bordercolor="#FFFFFF" bgcolor="#E6E6E6">
                  <tr>
                    <td width="88">CURP: </td>
                    <td width="437"><?php echo $row_BESPINOZA['CURP']; ?></td>
                  </tr>
                  <tr>
                    <td>Nombre: </td>
                    <td><p><?php echo $row_BESPINOZA['Nombre']; ?> <?php echo $row_BESPINOZA['Apellido_P']; ?> <?php echo $row_BESPINOZA['Apellido_M']; ?></p></td>
                  </tr>
                  <tr>
                    <td>RFC: </td>
                    <td><?php echo $row_BESPINOZA['RFC']; ?></td>
                  </tr>
                  <tr>
                    <td>Teléfono: </td>
                    <td><?php echo $row_BESPINOZA['Telefono']; ?></td>
                  </tr>
                  <tr>
                    <td>Celular: </td>
                    <td><?php echo $row_BESPINOZA['Celular']; ?></td>
                  </tr>
                  <tr>
                    <td>E-mail: </td>
                    <td><?php echo $row_BESPINOZA['email']; ?></td>
                  </tr>
                  <tr>
                    <td>Plaza: </td>
                    <td><?php echo $row_BESPINOZA['Plaza']; ?></td>
                  </tr>
                  <tr>
                    <td>Fecha Inicio: </td>
                    <td><?php echo $row_BESPINOZA['Fecha_Inicio']; ?></td>
                  </tr>
                  <tr>
                    <td>Domicilio: </td>
                    <td><?php echo $row_BESPINOZA['Domicilio']; ?></td>
                  </tr>
                </table>

       
       
       <?php      break; 


      default:
       echo 
"";
       }
       
?>
  #2 (permalink)  
Antiguo 21/02/2014, 18:33
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 14 años, 3 meses
Puntos: 9
Respuesta: Problemas con consulta.

hacele un echo a la session a ver que trae,

y supongo que pusiste session_start() arriba de la pagina para manejar sessiones,


bye.
  #3 (permalink)  
Antiguo 23/02/2014, 20:41
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Problemas con consulta.

Mi sesión sirve perfecto, solo estoy usando dicha variable, para tomar el nombre del usuario que esté activo, al que específicamente se mostrará X información, mi problema es con el switch, que no sé porque no me muestra nada. :(
  #4 (permalink)  
Antiguo 23/02/2014, 21:08
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problemas con consulta.

Qué obtienes con la siguiente línea:

var_dump($_SESSION);

Cómo estás armando la consulta para obtener $row_BESPINOZA?
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 23/02/2014, 21:37
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Problemas con consulta.

Cuando este usuario esté logueado, necesito que logre ver registros que contengan la palabra 'DECASA' en el campo 'Cliente'

Código PHP:
SELECT *
FROM usuarios INNER JOIN login   ON usuarios.CURP login.Curp AND login.Nivel 'USER' AND CLIENTE 'DECASA' 
  #6 (permalink)  
Antiguo 23/02/2014, 21:39
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problemas con consulta.

Ok, por favor muestra lo que tienes en sesión (para eso es el var_dump), también el código PHP de como armas y lees la consulta.

A ciegas será difícil tratar de ayudarte.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 23/02/2014, 22:04
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Problemas con consulta.

Mi sesión:
Código PHP:
<?php
if (!isset($_SESSION)) {
  
session_start();
}
$MM_authorizedUsers "Administrador,Admin2,Gerente,GR,Supervisor";
$MM_donotCheckaccess "false";


function 
isAuthorized($strUsers$strGroups$UserName$UserGroup) { 

  
$isValid False

 
their username
  
  if (!empty(
$UserName)) { 
    
established when they login
   
    
$arrUsers Explode(","$strUsers); 
    
$arrGroups Explode(","$strGroups); 
    if (
in_array($UserName$arrUsers)) { 
      
$isValid true
    } 
  
    if (
in_array($UserGroup$arrGroups)) { 
      
$isValid true
    } 
    if ((
$strUsers == "") && false) { 
      
$isValid true
    } 
  } 
  return 
$isValid
}

$MM_restrictGoTo "nopermiso.php";
if (!((isset(
$_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar "?";
  
$MM_referrer $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
  if (isset(
$_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) > 0
  
$MM_referrer .= "?" $_SERVER['QUERY_STRING'];
  
$MM_restrictGoTo $MM_restrictGoTo$MM_qsChar "accesscheck=" urlencode($MM_referrer);
  
header("Location: "$MM_restrictGoTo); 
  exit;
}
?>

Y para traer la cosulta:

Código PHP:
 if (isset($_GET['totalRows_Recordset1'])) {
  
$totalRows_Recordset1 $_GET['totalRows_Recordset1'];
} else {
  
$all_Recordset1 mysql_query($query_Recordset1);
  
$totalRows_Recordset1 mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;

mysql_select_db($database_Pharma$Pharma);
$query_BESPINOZA "SELECT * FROM usuarios INNER JOIN login   ON usuarios.CURP = login.Curp  WHERE login.Nivel = 'USER' AND CLIENTE = 'DECASA'";
$BESPINOZA mysql_query($query_BESPINOZA$Pharma) or die(mysql_error());
$row_BESPINOZA mysql_fetch_assoc($BESPINOZA);
$totalRows_BESPINOZA mysql_num_rows($BESPINOZA); 

?> 
  #8 (permalink)  
Antiguo 24/02/2014, 01:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problemas con consulta.

1- Vuelvo a pedirte que pongas lo que aparece en pantalla cuando incluyes var_dump($_SESSION); que, por cierto, debes ponerla después de session_start();

2- Ejecuta la consulta en PhpMyAdmin y cuéntanos si obtienes resultados.

3- Antes de leer la consulta con mysql_fetch_assoc() verifica el total de registros leidos:

Código PHP:
Ver original
  1. if (mysql_num_rows($BESPINOZA) == 0) {
  2.        // No se obtuvieron registros
  3.        // Mensaje de error? y/o fin del script?
  4. }

4- Después de ese if lee la consulta que, es muy posible que devuelva más de una fila y quiero suponer que ya lo tienes contemplado; pero bueno, verifica lo que obtienes:

Código PHP:
Ver original
  1. while($row_BESPINOZA = mysql_fetch_assoc($BESPINOZA)) {
  2.       // Revisa los datos
  3.       var_dump($row_BESPINOZA);
  4.  
  5.       // Realmente necesitas el switch?
  6.       switch($_SESSION['MM_Username'] {
  7.             case: 'BESPINOZA'
  8.                  // Instrucciones
  9.                  break;
  10.             default:
  11.                  // Instrucciones
  12.                  break;
  13.       }
  14. }

5- Sigo preguntándome si realmente necesitas ese switch y, más aún, me intriga que sea por una variable de sesión y no por un dato en el registro; tal vez estés pensando en mostrar diferente contenido de acuerdo al usuario conectado y, si es el caso, creo que sería mejor si lo haces por nivel (admin, gerente, etc.) y no por nombre.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 24/02/2014, 05:58
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Problemas con consulta.

Cuando intento agregar var_dump($_SESSION); me salen mil errores de sintaxis, y no entiendo porque, he revisado prácticamente línea por línea. Aunque tal vez, se debiera a mi mal uso de ella.

Respecto a tu pregunta sobre si realmente necesito el switch: Si, bien lo podría hacer con if's, pero en fin. ¿Por qué lo necesito? acertaste cuando dijiste que lo pienso usar con más de un usuario (3 para ser exactos) ¿Porque simplemente no los restrinjo por nivel? porque estos usuarios no podrán ver la misma consulta entre ellos, además que no aplica para todos los usuarios del mismo nivel.
  #10 (permalink)  
Antiguo 24/02/2014, 06:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problemas con consulta.

Ok, modifica el script para que las primeras 4 línea sean como el siguiente código y muéstranos lo que obtienes:

Código PHP:
Ver original
  1. <?php
  2. var_dump($_SESSION);
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 24/02/2014, 09:38
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Problemas con consulta.

Modifiqué las líneas que me dijiste, y me imprime esto en pantalla:

array (size=2)
'MM_Username' => string 'bespinoza' (length=9)
'MM_UserGroup' => string 'Supervisor' (length=10)
  #12 (permalink)  
Antiguo 24/02/2014, 12:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problemas con consulta.

Ok, en sesión lo tienes en minúsculas y en el case con mayúsculas, será ese el problema?
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 24/02/2014, 13:33
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Problemas con consulta.

Tomando en cuenta lo que me dijiste, hice una búsqueda de la palabra "bespinoza" y las reemplacé todas por mayúsculas, y luego al revés, pero me sigue dando el mismo resultado. ¿Crees que se pueda deber a otra cuestión?
  #14 (permalink)  
Antiguo 24/02/2014, 19:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problemas con consulta.

Aquí va otra práctica:

Código PHP:
Ver original
  1. <?php
  2. switch($_SESSION['MM_Username']) {  
  3.        case 'bespinoza':
  4.                echo 'OK, el usuario está bien';
  5.                break;
  6.        default:
  7.                echo 'El usuario no es bespinoza, es: ' . $_SESSION['MM_Username'];
  8.                break;
  9. }

Cuéntanos lo que obtienes con eso.
__________________
- León, Guanajuato
- GV-Foto
  #15 (permalink)  
Antiguo 25/02/2014, 13:13
 
Fecha de Ingreso: enero-2014
Mensajes: 127
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Problemas con consulta.

Tu ejemplo me ayudó, gracias a eso me di cuenta que mi error estaba con mi declaración de variables y como me habías dicho, en los cases. Te agradezco mucho la ayuda. :D

Aunque le tuve que quitar el:

Código PHP:
 <?php
session_start
();
var_dump($_SESSION);
exit;
Porque de tal forma, nada más no me salía. :/

Última edición por Karen_mBrK; 25/02/2014 a las 13:18

Etiquetas: fecha, registro, tabla
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 21:35.