Foros del Web » Programando para Internet » PHP »

optimizar la forma en que consulto datos del usuario.

Estas en el tema de optimizar la forma en que consulto datos del usuario. en el foro de PHP en Foros del Web. Hola como estan, Actualmente abro una sesión y tengo consultas que me permiten ver ciertos divs, campos o menus dependiendo del usuario de la sesión. ...
  #1 (permalink)  
Antiguo 03/09/2013, 22:14
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
optimizar la forma en que consulto datos del usuario.

Hola como estan,

Actualmente abro una sesión y tengo consultas que me permiten ver ciertos divs, campos o menus dependiendo del usuario de la sesión.

El problema es que siempre se debe hacer consultas, consultas y mas consultas...

Los datos que se recuperan en las consultas son por ejemplo, el rol del usuario, el grupo al que prtence, los permisos que tiene, el proyecto al que pertenece, etc... dependiendo de los resultados puede hacer ciertas cosas en el sitio...

¿Existe una manera en que se eviten tantas consultas? algo asi como poner los datos solo una vez en un array o una cookie?? aunque no creo que sea lo ideal, pero no estoy seguro, además lo del array no funcionaría ya que se recargan muchas paginas en el sitio..

¿Alguna idea?

Les agradezco cualquier ayuda que me puedan prestar.

Saludos a todos.
  #2 (permalink)  
Antiguo 03/09/2013, 22:23
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: optimizar la forma en que consulto datos del usuario.

Puedes usar funciones, o la clase mysqli, consultas parametrizadas espero te sea de utilidad
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #3 (permalink)  
Antiguo 03/09/2013, 23:15
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: optimizar la forma en que consulto datos del usuario.

Y si solo haces la consulta una ves y pasas esos datos por medio de variables de session ??
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #4 (permalink)  
Antiguo 05/09/2013, 22:20
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: optimizar la forma en que consulto datos del usuario.

Buenas noches,

SkAr88, la opción que me indicas es una buena alternativa, así mejoraría mucho el rendimiento, de hecho lo he usado en un par de ocaciones, muchas gracias.

KATHYU, si, es una buena idea de pasar los datos a variables de session pero mi duda es ¿será eso seguro?, me podrías indicar donde se puede encontrar mas información respecto de eso? creo que es una mejor alternativa asi se evitan consultas a cada rato a la base de datos..

Les agradezco a ambos por su ayuda.

Atento a comentarios.

Saludos..
  #5 (permalink)  
Antiguo 05/09/2013, 22:32
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: optimizar la forma en que consulto datos del usuario.

Pues es que solo se hace una vez (en el login ) la consulta de usuario, guardas el usuario, pass y el tipo o rango de ese usuario (admin, cajero, gato etc) en variables de sesion y cuando pones algo que solo el admin puede pones un if, if el usuario es tipop admin entonces ver esto si no no lo puede ver, esas variables las podes meter en un archivo aparte que hasta puee estar con parametros de encriptacion y llamarlos con un include session.php y listo !!!

Yo hago algo asi y encripto el nombre de la sesion y algun otro dato importante
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #6 (permalink)  
Antiguo 05/09/2013, 23:03
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: optimizar la forma en que consulto datos del usuario.

Muchas gracias KATHYU, entonces lo que haré es agregar las consultas que correspondan y las guardaré al loguearme en la página.

Muchas gracias por tu ayuda, la verdad es que ahora estoy mas claro y ahora mismo comienzo a probar...

Saludos.
  #7 (permalink)  
Antiguo 05/09/2013, 23:49
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: optimizar la forma en que consulto datos del usuario.

Hola denuevo, me surgió una duda...

Realizo una consulta que me devuelve un lstado de 10 datos los cuales son permisos para realizar ciertas acciones y estos se guardan en la session $_SESSION['consulta'];

algunos permisos pueden ser: elimina, guardar, ver, editar, etc...

Luego hay un IF que dice que se le permite al usuario acceder solo si cumple con el permiso ver.

La pregunta es ¿Como se hace el IF si este guarda 10 datos? solo se está preguntando por 1 de ellos...

Muchas gracias desde ya por la ayuda. saludos.
  #8 (permalink)  
Antiguo 06/09/2013, 00:04
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: optimizar la forma en que consulto datos del usuario.

Hola, dependera de como guardes tus datos, puedes revisar estas funciones.

http://www.php.net/manual/es/function.in-array.php
http://php.net/manual/es/function.array-search.php
http://www.php.net/manual/es/function.substr-count.php

Saludos
  #9 (permalink)  
Antiguo 06/09/2013, 14:04
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: optimizar la forma en que consulto datos del usuario.

Lo que podea hacer es el principio "divide y venceras" si aun estas aprendiendo te recomiendo que lo hagas de la forma mas facil y de ahi pones en practica lo que te dice el amigo Erick_MD9.

Asi pues, guarda en una variable de sesion cada permiso:

Código PHP:
Ver original
  1. $eliminar = $_SESSION['eliminar'];

Luego el if ummm seria o largo o simplemente un if para cada necesidad !!

Código PHP:
Ver original
  1. if(!$_SESSION['eliminar']=='1' or !$_SESSION['agregar']=='1' or !$_SESSION['modificar']=='1'){
  2. //hacer cada accion
  3. }
  4.  
  5. else
  6. {
  7. echo 'usted no puede hacer esto';
  8. }

Si aprendes a usar la logica primero, luego te sera facil meterte con clases y funciones mas grandes
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #10 (permalink)  
Antiguo 06/09/2013, 21:17
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: optimizar la forma en que consulto datos del usuario.

Muchísmas gracias a ambos, me han sido de mucha utilidad ambas respuestas.

Saludos, buen día.
  #11 (permalink)  
Antiguo 06/09/2013, 22:49
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: optimizar la forma en que consulto datos del usuario.

Uuuuuultima preguntita...

De que forma se pude modificar una SESSION sin tener que recargar nuevamente el archivo que la genera?...

Pregunto, ya que en mi caso si un usuario tiene 10 permisos y este ha iniciado la sesion, en todas las partes donde se utilice me dirá que tengo 10, pero.... ¿y que pasa si estando con la sesion abierta se modifican los permisos del usuario ya sea añadiendo o eliminando permisos?... cada vez que tenga que utilizar SESSION me seguira mostrando los 10.

La idea sería que se modificará al momento de agregar o quitar permisos.

He estado buscando como modificar, pero encuentro solo que se debe utilizar $_SESSION... eso significa volver a recargar el archivo donde esta se genera, ¿Eso está bien?

Saludos y millones de gracias!!
  #12 (permalink)  
Antiguo 07/09/2013, 08:55
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: optimizar la forma en que consulto datos del usuario.

Pues seria que el usuario cierre sesion para que se recarguen los privilegios, ademas eso de quitar y poner a cda rato es un error, crea perfiles de usuarios con privilegios estandars asi no hay eso de poner y quitar !!!!
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #13 (permalink)  
Antiguo 07/09/2013, 10:15
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: optimizar la forma en que consulto datos del usuario.

Añadiendo a lo correctamente comentado por KATHYU, normalmente un usuario no va a colocarse o a eliminarse a sí mismo permisos, esto lo hace un administrador, y como no puedes modificar una sesión de otro usuario, forzosamente el usuario deberá cerrar sesión y volver a abrir para cargar los nuevos privilegios.
  #14 (permalink)  
Antiguo 07/09/2013, 22:38
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: optimizar la forma en que consulto datos del usuario.

Haz una tabla solo de privilegios (eso para empezar) y ahi concatenas a cada user con su id y sus respectivos privilegios.

Luego en el form de administracion con cheques pones eso de eliminar, modif., agregar y si esta checado es igual a 1 en la tabla permisos y si no es cero y obvio no tiene permiso !!!
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #15 (permalink)  
Antiguo 07/09/2013, 23:26
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: optimizar la forma en que consulto datos del usuario.

Muchas gracias por las respuestas, gracias también por la paciencia que han tenido y la voluntad y tiempo para ayudarme en mis dudas.

Saludos, que tengan buen día.

gracias!!!

Etiquetas: forma
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 09:23.