Foros del Web » Programando para Internet » PHP »

problema al tomar variables de consulta

Estas en el tema de problema al tomar variables de consulta en el foro de PHP en Foros del Web. Hola, para crear una web con registro de usuarios tengo una base de datos en la que me muestra con un booleano si un usuario ...
  #1 (permalink)  
Antiguo 25/03/2011, 07:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
problema al tomar variables de consulta

Hola, para crear una web con registro de usuarios tengo una base de datos en la que me muestra con un booleano si un usuario es socio, tesorero o administrador.
El problema es que al hacer la consulta me da la impresión de que no tomo bien los datos que luego se pasan como variables de sesión.
En mi caso, $validado, $adminis y $estesorero me dicen con un "si" si son o no socios, administradores o tesorero.
El caso es que creo que no me realiza bien la consulta o no hago bien el mysql_query o el if porque no me funciona bien. No me salen errores de sintaxis ni nada parecido pero no hace lo que debería cuando es un script sencillo.

Este es mi validar.php
Código PHP:
<?php
                            
include('conexionbd.php');
                            
$conexion get_db_conn();
                            
                            
$usuario $_POST['usuario'];
                            
$password $_POST['contrasena'];
                            
                            
$ssql="SELECT * FROM usuario WHERE nombreusuario = '".$usuario."' AND password = '".$password."'";
                            
                            
$rs mysql_query($ssql,$conexion);
                            
                            if (
mysql_num_rows($rs)!=0)
                            {                                                
                                
session_start();
                                
session_register("validado");
                                
$validado="si";
                                
session_register("nombreusuario");
                                
$nombreusuario=$_POST['usuario'];
                                
                                
session_register("adminis");
                                
session_register("estesorero");
                                
$adminis="no";
                                
$estesorero="no";
                                
                                
$sssql="SELECT admin FROM usuario WHERE nombreusuario = '".$usuario."' AND password = '".$password."'";
                                
$rrs=mysql_query($sssql,$conexion);
                                if(
$rrs!='0')
                                {
                                
$adminis="si";
                                }                                
                                
$ssssql="SELECT tesorero FROM usuario WHERE nombreusuario = '".$usuario."' AND password = '".$password."'";
                                
$rrrs=mysql_query($ssssql,$conexion);
                                if(
$rrrs!='0')
                                {
                                
$estesorero="si";
                                }
                                
                                
header("Location: ../privada/privada.php?usuario=$nombreusuario");    
                                    
                            }
                            else
                            {
                            
header("Location: ../index.php?page=entrar&errorusuario=si");
                            }
        
mysql_free_result($rs);
        
mysql_close($conexion);
?>

y aquí vendría mi navbar.php (que determina si es socio, tesorero o admin). Este navbar va dentro de la privada.php y se muestra sin problemas.
Código PHP:
<style type="text/css">
<!--
#posidiv {
    position:absolute;
    left:15px;
}
-->
</style>
<div id="posidiv">Esta es la zona privada de 
<?php 
            
echo $nombreusuario
            echo 
$adminis;
            echo 
$estesorero;
            
                if(
$_SESSION["adminis"]=="si")
                                    {
                                        echo 
" que es administrador.";
                                    }
                if(
$_SESSION["estesorero"]=="si")
                                    {
                                        echo 
" que es el tesorero.";
                                    }
                if(
$_SESSION["adminis"]!="si" or $_SESSION["estesorero"]!="si")
                                    {
                                        echo 
" que es socio.";
                                    }
?>
</div>

<div id="navbar" align="right"><a href="../auxi/salir.php"><strong>Salir</strong></a></div>
Alguien me puede echar una mano con esto?

muchas gracias de antemano
  #2 (permalink)  
Antiguo 25/03/2011, 07:20
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: problema al tomar variables de consulta

mmmm y tienes una tabla de permisos en tu mysql? digo en alguna parte debes parasarle un 1, 2 y 3 por decir así que idintifique el permiso de cada usuario segun lo que veo este se identifica y asume o piensa aaa tu eres admin, y tu tesorero? pero donde y como resuelve esto el script?


saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 25/03/2011, 08:35
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: problema al tomar variables de consulta

Hola, esta es la sentencia, y probablemente la que me de da problemas.
Código PHP:
$sssql="SELECT admin FROM usuario WHERE nombreusuario = '".$usuario."' AND password = '".$password."'"
En mi base de datos tengo una tabla "usuario" con un campo booleano "admin" que me dice si lo es, y también un campo "tesorero" igualmente con un booleano que me lo dice.

por eso la sentencia
Código PHP:
 $ssssql="SELECT tesorero FROM usuario WHERE nombreusuario = '".$usuario."' AND password = '".$password."'"
me debería dar un 0 o un 1 (o esto creo yo)(esto es lo que me da si ejecuto la sentencia sql.
eso si, luego al pasarla por el if no funciona el script. no se que estoy haciendo mal.

gracias
  #4 (permalink)  
Antiguo 25/03/2011, 10:06
Avatar de flanagan44  
Fecha de Ingreso: abril-2004
Mensajes: 182
Antigüedad: 20 años
Puntos: 2
Respuesta: problema al tomar variables de consulta

Yo usaria:
Código PHP:
Ver original
  1. $ssql="SELECT * FROM usuario WHERE nombreusuario = '".$usuario."' AND password = '".$password."'";
  2.                            
  3. $rs = mysql_query($ssql,$conexion);

Y si no me equivoco tendrias las variables que necesitas en:
Código PHP:
Ver original
  1. $row['validado'];
  2. $row['adminis'];
  3. $row['estesorero'];

Luego te tocaria hacer los If's y demas

Haber si hay suerte, un saludo
  #5 (permalink)  
Antiguo 25/03/2011, 10:25
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: problema al tomar variables de consulta

Cita:
Iniciado por flanagan44 Ver Mensaje
Yo usaria:
Código PHP:
Ver original
  1. $ssql="SELECT * FROM usuario WHERE nombreusuario = '".$usuario."' AND password = '".$password."'";
  2.                            
  3. $rs = mysql_query($ssql,$conexion);

Y si no me equivoco tendrias las variables que necesitas en:
Código PHP:
Ver original
  1. $row['validado'];
  2. $row['adminis'];
  3. $row['estesorero'];

Luego te tocaria hacer los If's y demas

Haber si hay suerte, un saludo
Gracias pero no acabo de verlo claro, además lo pruebo y no me funciona.
supongamos que la consulta es true, entonces tendremos un array de nombre $row con los datos obtenidos, cuales son esos datos? un solo valor?

Además, como funciona esto??
Código PHP:
Ver original
  1. $row['validado'];
  2. $row['adminis'];
  3. $row['estesorero'];
Estas seguro de que esta bien??

muchas gracias pero no veo la solución y tan dificil no puede ser el leer de una consulta un booleano
  #6 (permalink)  
Antiguo 25/03/2011, 10:43
Avatar de flanagan44  
Fecha de Ingreso: abril-2004
Mensajes: 182
Antigüedad: 20 años
Puntos: 2
Respuesta: problema al tomar variables de consulta

No, no esta bien.

El codiigo seria:

Código PHP:
Ver original
  1. $admin=$row['adminis'];
  2. $usr=$row['validado'];
  3. $tesor=$row['estesorero'];

El
Código PHP:
mysql_fetch_array($rs); 
te pone la primera fila del resultado de la consulta en el array $row (si hubiera mas resultados podrias hacer
Código PHP:
while($row=mysql_fetch_array($rs))
{
      echo 
$row['adminis'];

y te mostraria (si no fuera un boolean) todos los resultados

Luego al ser boolean puedes hacer
Código PHP:
if($row['adminis']) echo "es administrador";
else
{
    if(
$row['estesorero'])echo "es tesorero";
    else
    {
          if(
$row['validado'])echo "esta validado";
          else echo 
"no esta validado";
    }

Espero que te sirva, un saludo (espero no equivocarme, la verdad es que hacia tiempo que no programaba en php y ahora estoy volviendo a empezar)
  #7 (permalink)  
Antiguo 25/03/2011, 10:48
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: problema al tomar variables de consulta

Hola, muchas gracias pero creo que he conseguido solucionarlo.

Código PHP:
Ver original
  1. $sssql="SELECT admin FROM usuario WHERE nombreusuario = '".$usuario."' AND password = '".$password."'";
  2.                                 $rrs=mysql_query($sssql,$conexion);
  3.                                 $row=mysql_fetch_array($rrs);
  4.                                 if(in_array("1",$row))
  5.                                 {
  6.                                 $adminis="si";
  7.                                 }

Y creo que con esto funciona.
  #8 (permalink)  
Antiguo 25/03/2011, 10:55
Avatar de flanagan44  
Fecha de Ingreso: abril-2004
Mensajes: 182
Antigüedad: 20 años
Puntos: 2
Respuesta: problema al tomar variables de consulta

pero con esto solo seleccionas a los usuarios que son admins no??

O es que todos son admins y algunos ademas son tesoreros?? o usuarios??


Si necesitas saber los 3 datos a la vez lo correcto es hacer una consulta que te devuelva los 3 datos cada vez, ya que si no puede que no consideres todos los resultados.

Un saludo
  #9 (permalink)  
Antiguo 25/03/2011, 11:16
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: problema al tomar variables de consulta

si si, bueno, ese trozo de código es el del caso del admin lo que pasa es que para el tesorero es igual.
  #10 (permalink)  
Antiguo 25/03/2011, 11:19
Avatar de flanagan44  
Fecha de Ingreso: abril-2004
Mensajes: 182
Antigüedad: 20 años
Puntos: 2
Respuesta: problema al tomar variables de consulta

Ya, si lo entiendo, pero eso no es muy optimo

Para saber eso te recorres 3 veces cada vez la tabla, relantizas el proceso y para nada.

En una vez te puede devolver todos los campos, es tonteria hacer 3 consultas si con una te sale todo
  #11 (permalink)  
Antiguo 25/03/2011, 11:22
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: problema al tomar variables de consulta

cierto, es cierto,
como se prevé que la bd no sea muy grande de momento lo dejaré así pero te agradezco mucho la explicación.

Etiquetas: tomar, variables
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 19:00.