Foros del Web » Programando para Internet » PHP »

sesiones, niveles, consultas relacionales y php

Estas en el tema de sesiones, niveles, consultas relacionales y php en el foro de PHP en Foros del Web. Buenas a todos son nuevo en el foro bueno, no tan nuevo porque desde tiempo lo leeo y me saca de varias dudas de programacion. ...
  #1 (permalink)  
Antiguo 25/11/2009, 20:22
 
Fecha de Ingreso: noviembre-2009
Ubicación: Mexico, D.F.
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Busqueda sesiones, niveles, consultas relacionales y php

Buenas a todos son nuevo en el foro bueno, no tan nuevo porque desde tiempo lo leeo y me saca de varias dudas de programacion.

Mi duda y por mas que le doy vueltas no le hayo respuesta, tengo un sistema en el cual tengo a usuarios en una tabla lo mismo de siempre.

user pass nivel
juan 123 1 ->todos los privilegios
pedro 456 2 ->usuario avanzados
miguel 789 3 ->usuario restringido
rick 101 3 ->usuario restringido
lucia 121 3 ->usuario restringido

Esto lo tengo por sesiones lo mismo de siempre se abre la sesion y tengo en el navegador de alta a las variables de sesion user, pass y el nivel.

Ahora tengo dos tablas relacionales una de clientes y otra donde se capturan los eventos de los clientes ejemplo.

Idcliente cliente
1 juan
2 pedro
3 miguel


Y la de los eventos

Idevento evento cliente
1 15/11/09 juan
2 20/11/09 pedro
3 21/11/09 juan
4 25/11/09 miguel
5 12/12/09 juan


Ahora bien para sacar la consulta en php de cada uno de los clientes no tengo problema ejemplo.

$getnombrecliente = $_GET['nombrecliente'];
$consulta_queryjuanito =sprinf( ”SELECT cliente, evento From eventos WHERE cliente=%s”, $getnombrecliente)
$queryjuanito = mysql_query($consulta_queryjuanito, $Conn_BD) or die(mysql_error());
$row_ queryjuanito = mysql_fetch_assoc($queryjuanito);


Para los campos $row_ queryjuanito[‘cliente’] asi obtendría el cliente consultado sin problema pero el problema consiste en que por ejemplo

Si rick quiere consultar los registros de juanito cosa que no se debe de poder hacer
Si Juan como es el que tiene todos los privilegios si lo debe de poder ver los registros de todos
Sin embargo miguel solo debe de poder ver sus registros ya que es usuario restringido

Los que tienen todos los privilegios si deben de poder ver todos los registros sin embargo los usuarios restringidos solo deben de poder ver sus registros, como puedo crear una consulta en MySQL o bien alguna idea en PHP para desarrollar esta idea.

Posiblemente lo esté planteando mal pero no creo lo mismo sucede con los foros los usuarios se dan de alta y tienen restringidos ciertos privilegios sin embargo estos usuarios registrados si pueden ver sus mensajes crear mensajes y borrarlos y no pueden ver lo de otros usuarios sin embargo los administradores si pueden ver los mensajes que quieran o bien modificar mensajes de otros usuarios.

Alguien tiene alguna idea de cómo puedo desarrollar esto, saludos y gracias.
  #2 (permalink)  
Antiguo 27/11/2009, 07:10
 
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: sesiones, niveles, consultas relacionales y php

Hola que tal, no entendi del todo bien lo que dijiste, pero me parecio interesante.

Tome lo que pude de tu modelo de datos y cree la siguiente estructura
Código:
#usuarios
id nombre

#clientes
id usuario_id nombre

#eventos
id cliente_id evento

y despues la query para funcionar sobre ese modelo, seria

Código SQL:
Ver original
  1. SELECT u.nombre AS usuario_duenio_del_cliente
  2.          , c.nombre AS cliente
  3.          , e.evento
  4.       FROM eventos e
  5.  
  6. INNER JOIN clientes c
  7.         ON c.id = e.cliente_id
  8.  
  9. INNER JOIN usuarios u
  10.         ON u.id = c.usuario_id
  11.  
  12. INNER JOIN usuarios n
  13.         ON n.id = 'id del usuario logeado'
  14.        AND n.nivel <= u.nivel
  15.  
  16.      WHERE e.cliente_id = 'id del cliente que queres ver'

Como funciona ? muy sencillo, hace un Inner Join a la tabla de usuarios, con la condicion que el nivel del usuario actual logeado sea menor o igual, al nivel del usuario "dueño" del cliente. Si es true, todo bien, si es false, la query no devuelve nada :D

Espero que te sirva :)

Saludos
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 06:34.