Foros del Web » Programando para Internet » PHP »

Administrar Usuarios con $_Session?

Estas en el tema de Administrar Usuarios con $_Session? en el foro de PHP en Foros del Web. Hola a todos, Soy nuevo en el foro y en php. Tengo un problema para administrar usuarios en mi sitio. Estoy usando php, json (autocompletar ...
  #1 (permalink)  
Antiguo 27/01/2014, 06:22
 
Fecha de Ingreso: enero-2014
Mensajes: 3
Antigüedad: 10 años, 3 meses
Puntos: 0
Administrar Usuarios con $_Session?

Hola a todos,
Soy nuevo en el foro y en php. Tengo un problema para administrar usuarios en mi sitio.
Estoy usando php, json (autocompletar para los destinos) y mysql para la base de datos.
El login del sitio funciona perfecto. Lo que no puedo lograr es lo siguiente:

Trabajo en la base de datos con 4 tablas:
usuario, cliente, destino y pedido. A continuación describo los campos de cada tabla.

usuario: id_usuario, nombre_usuario, apellido_usuario, empresa, sector
cliente: id_cliente, id_usuario, nombre_cliente
destino: id_destino, id_cliente, nombre_destino
pedido: id_pedido, nombre_usuario, apellido_usuario, empresa, sector

Necesito que la funcion global $_Session extraiga el nombre_usuario, apellido_usuario, empresa y sector del usuario y no su Id como aparece cuando se genera un pedido.

Tambien necesito es que cada cliente tenga destinos asociados únicos.
En resumen seria que cada usuario pertenece a un cliente y cada cliente tiene destinos únicos asociados.

Mi pregunta es la siguiente. Donde debo cambiar la consulta..? En el procesa login? o en el autocompletar del json..? o en los dos? o tal vez la solución esta en otro lugar y no me di cuenta....

Este es el cod del procesa login

<?php
include('conexion.php');

$mail=$_POST['mail'];
$clave=$_POST['clave'];

$query="SELECT id_usuario FROM usuario WHERE mail='$mail' AND clave='$clave'";
$resultado=mysql_query($query,$conexion);

if(mysql_num_rows($resultado) > 0){
session_start();

$fila=mysql_fetch_array($resultado);

$_SESSION ['id_usuario']= $fila['id_usuario'];
header("location: usuario_actual.php");

}else{
echo "Datos incorrectos. <a href='index.php'> Volver </a>";
}
?>

y este es el código del json que procesa el autocompletar de los destinos


<?php
header("Content-Type: text/html;charset=utf-8");
class Destinos
{
public function __construct() {
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'db_asus';

mysql_connect($dbhost, $dbuser, $dbpass);

mysql_select_db($dbname);
mysql_query("SET NAMES 'utf8'");
}

public function buscarDestino($nombreDestino){
$datos = array();

$sql = "SELECT * FROM destino
WHERE nombre LIKE '%$nombreDestino%'";

$resultado = mysql_query($sql);

while ($row = mysql_fetch_array($resultado, MYSQL_ASSOC)){
$datos[] = array( "value" => $row['nombre']);
}

return $datos;
}
}


El que pueda descifrar esto que me tire una ayuda porque me estoy quemando la cabeza y creo que es algo mas simple lo que creo.
Muchas gracias!

Última edición por agus07; 27/01/2014 a las 06:35
  #2 (permalink)  
Antiguo 27/01/2014, 07:35
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Administrar Usuarios con $_Session?

Cita:
Iniciado por agus07 Ver Mensaje
...Necesito que la funcion global $_Session extraiga el nombre_usuario, apellido_usuario, empresa y sector del usuario y no su Id como aparece cuando se genera un pedido...
La solucion a esto es simplemente analizar tu propio codigo y darte cuenta las lineas a agregar. Aqui te dejo el codigo modificado. Lo demas es manejar los valores de las sessiones.


Código PHP:
Ver original
  1.  
  2. $fila=mysql_fetch_array($resultado);
  3.  
  4. $_SESSION ['id_usuario']= $fila['id_usuario'];
  5. $_SESSION ['nombre_usuario']= $fila['nombre_usuario'];
  6. $_SESSION ['apellido_usuario']= $fila['apellido_usuario'];
  7. $_SESSION ['empresa']= $fila['empresa'];
  8. $_SESSION ['sector']= $fila['sector'];
  9.  
  10. header("location: usuario_actual.php");
  #3 (permalink)  
Antiguo 27/01/2014, 09:26
 
Fecha de Ingreso: enero-2014
Mensajes: 3
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Administrar Usuarios con $_Session?

MUCHAS GRACIAS ALEXISVERANO!!!!
Ya soluciones lo de las variable de $_Session. Gracias!

Ahora solo me falta relacionar las consultas de las 4 tablas de la base de datos.
Necesito que a cada usuario le corresponda un cliente o mas de uno, y también que a cada cliente le corresponda un destino o mas de uno.

A eso también lo trabajo desde la $_Session..?
O tengo que modificar la consulta del json..?

  #4 (permalink)  
Antiguo 27/01/2014, 12:12
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Administrar Usuarios con $_Session?

La relacion de las consultas donde estan implicadas varias tablas, deberas utilizar INNER JOIN, te dejo un ejemplo, revisa el codigo y pruebalo.

Código MySQL:
Ver original
  1. SELECT *  FROM usuario INNER JOIN cliente  ON usuario.id_usuario=cliente.id_usuario;
  #5 (permalink)  
Antiguo 27/01/2014, 13:32
 
Fecha de Ingreso: enero-2014
Mensajes: 3
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Administrar Usuarios con $_Session?

Hola Alexisverano,
He probado modificar las consulta del json autocompletar y no funciona.

Esta es la consulta que uso y funciona:

$sql = "SELECT * FROM destino WHERE nombre LIKE '%$nombreDestino%'";

Pero la quiero cambiar para que cada empresa tenga sus destino y no puedan acceder a lo de otra empresa.

Y la verdad es que quiero almacenar todos los destinos en una sola tabla (destino) y no hacer tablas de destinos para distintas empresas.

Probé con esta consulta pero no funciona

$sql = "SELECT * FROM destino INNER JOIN nombre ON cliente.id_cliente=destino.id_cliente LIKE '%$nombreDestino%'";

No me autocompleta con los valores que cumplen esa condicion de la fila "nombre" de la tabla "destino"
Es mas, no trae a ningún valor.
y no logro darme cuenta donde esta el error.

Muchas gracias!

Etiquetas: html, mysql, select, sql, tabla, usuarios
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 15:19.