Foros del Web » Programando para Internet » PHP »

Pasar datos de mysql a una session

Estas en el tema de Pasar datos de mysql a una session en el foro de PHP en Foros del Web. ¡Hola! Necesito ayuda... tengo una base de datos y realizo una consulta para sacar todos los datos en funcion de un login y un pass: ...
  #1 (permalink)  
Antiguo 09/10/2008, 09:46
Avatar de Freakme  
Fecha de Ingreso: julio-2007
Ubicación: Portugalete
Mensajes: 97
Antigüedad: 16 años, 9 meses
Puntos: 0
Pasar datos de mysql a una session

¡Hola!
Necesito ayuda... tengo una base de datos y realizo una consulta para sacar todos los datos en funcion de un login y un pass:

session_start(); <<< Aquí inicio la session
include ("enlace.php"); <<< Aquí enlazo la base de datos
$login = $_POST['login']; <<<Esto me viene de la página de entrada
$pass = $_POST['pass']; <<<Esto me viene de la página de entrada
$sql="SELECT * FROM usuarios WHERE login='$login' AND pass='$pass'"; <<<Aquí pido todos los datos de la base, según esos login y pass.
$consulta=mysql_query($sql); <<< Aquí ejecuto la consulta
if (mysql_num_rows($consulta))
{header("location:index.php");
session_register('login');
session_register('pass');}
<<< Con esto guardo en session los datos de login y pass, pero tengo que guardar más datos cogidos de la tabla, ¿cómo?

¿¿Alguien puede ayudarme??
Gracias.
  #2 (permalink)  
Antiguo 09/10/2008, 09:52
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: Pasar datos de mysql a una session

$_SESSION["variable"]="valor"; todos lo que necesites.

Si el problema está en cómo sacar los datos de la consulta, podés usar mysql_fetch_array() que te dará un array con todas las columnas, y podés guardarlo en la sesión utilizando eso de arriba.

Saludos.
  #3 (permalink)  
Antiguo 09/10/2008, 10:10
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Pasar datos de mysql a una session

primero en enlace.php debes tener algo asi,no??

Código PHP:

      $conexion 
mysql_connect ("HOST""USER""PASS")
         or die (
"No se puede conectar con el servidor");

      
mysql_select_db ("DB_NAME")
         or die (
"No se puede seleccionar la base de datos"); 
Bueno lo primero para ejecutar la consulta yo hago

Código PHP:

     $consulta 
mysql_query ($sql$conexion )
         or die (
mysql_error ($conexion )); //mysql_error ($conexion ) muestra el error que ha habido 
tu por lo que veo $consulta=mysql_query($sql);, creo que asi esta mal

por otro lado

Código PHP:

mysql_num_rows
($consulta); 
devuelve el nº de tuplas que han resultado de la consulta, y tu parece que lo emplees como si debolviera un booleano,

Por otro lado yo para registrar variables en la sesion empleo
Código PHP:

$_SESSION
['nombre_vble']==vble_que_quiero_registrar 
Y en tu caso yo lo haria de la siguiente forma

Código PHP:

     $sql
="SELECT * FROM usuarios WHERE login='$login' AND pass='$pass'";

     
$consulta mysql_query ($sql$conexion )
         or die (
mysql_error ($conexion ));

     
$ntuplas=mysql_num_rows($consulta);

     if (
$ntuplas>0) {
          
$resultado mysql_fetch_array ($consulta);
          
$_SESSION['login']=resultado['login'];
          
$_SESSION['pass']=resultado['pass'];
          
$_SESSION['nombre1']=resultado['campo1'];
          
$_SESSION['nombre2']=resultado['campo2'];
          ...
          
$_SESSION['nombrex']=resultado['campoX'];
     }else echo 
'ERROR. Usuario o password incorrectos'
Espero servite de ayuda

Saludos
  #4 (permalink)  
Antiguo 09/10/2008, 10:11
Avatar de Freakme  
Fecha de Ingreso: julio-2007
Ubicación: Portugalete
Mensajes: 97
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Pasar datos de mysql a una session

No lo entiendo bien... ¿cómo saco los datos de la tabla?
por ejemplo, el nombre del usuario, que es el campo "nombre" en la tabla, para poder hacerle un session_register('nombre');
  #5 (permalink)  
Antiguo 09/10/2008, 10:13
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Pasar datos de mysql a una session

Como te han dicho arriba


$sql="SELECT * FROM usuarios WHERE login='$login' AND pass='$pass'";

$consulta = mysql_query ($sql, $conexion )
or die (mysql_error ($conexion ));

$ntuplas=mysql_num_rows($consulta);


if ($ntuplas>0) {
$resultado = mysql_fetch_array ($consulta);
$_SESSION['login']=resultado['login'];
$_SESSION['pass']=resultado['pass'];
$_SESSION['nombre']=resultado['nombre]; //y asi con todos los campos de tu tabla
}
else echo 'ERROR. Usuario o password incorrectos';
}

Última edición por jaronu; 09/10/2008 a las 10:23
  #6 (permalink)  
Antiguo 09/10/2008, 10:19
Avatar de Freakme  
Fecha de Ingreso: julio-2007
Ubicación: Portugalete
Mensajes: 97
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Pasar datos de mysql a una session

mysql_num_rows($consulta);
he encontrado en muchos sitios que se utiliza para comprobar que te devuelve alguna coincidencia.

$_SESSION['nombre1']=resultado['campo1'];

¿Qué es "resultado['campo1']"? ¿es algo que tengo que escribir yo? porque lo que quiero es sacar el dato que ya está en la base de datos y meterlo en la session.

La bbdd tiene 15 campos, está creada con phpmyadmin... no sé qué más decir... :S
  #7 (permalink)  
Antiguo 09/10/2008, 10:24
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Pasar datos de mysql a una session

Cita:
Iniciado por jaronu Ver Mensaje
Como te han dicho arriba


$sql="SELECT * FROM usuarios WHERE login='$login' AND pass='$pass'";

$consulta = mysql_query ($sql, $conexion )
or die (mysql_error ($conexion ));

$ntuplas=mysql_num_rows($consulta);


if ($ntuplas>0) {
$resultado = mysql_fetch_array ($consulta);
$_SESSION['login']=resultado['login'];
$_SESSION['pass']=resultado['pass'];
$_SESSION['nombre']=resultado['nombre]; //y asi con todos los campos de tu tabla
}
else echo 'ERROR. Usuario o password incorrectos';
}
  #8 (permalink)  
Antiguo 09/10/2008, 10:27
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Pasar datos de mysql a una session

$_SESSION['nombre1']=resultado['campo1'];

donde

campo1 es el nombre del campo que quieras extraer de tu BD

nombre1 es el nombre que le quieras dar a la variable de sesion
  #9 (permalink)  
Antiguo 09/10/2008, 10:29
Avatar de Freakme  
Fecha de Ingreso: julio-2007
Ubicación: Portugalete
Mensajes: 97
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Pasar datos de mysql a una session

perdon, perdon, fallo mio, no había leido bien.
muchisimas gracias a todos, en especial a matak, ya funciona!!!
  #10 (permalink)  
Antiguo 07/12/2008, 10:30
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Pasar datos de mysql a una session

saludos

buscando encontre este post y tengo un problema parecido, pero en lo q se diferencia es en pasar esas variables de sesion a otra pagina, poro ejemplo:

tengo la pagina index, donde esta el formulario con los datos a ingresar del login, los paso mediante POST, a otra pagina q consulto si estan en la base de datos y ademas consulto la informacion de ese usuario y las guardo en variables de sesion = como se menciona arriba, en lo spost anteriores, y redirijo a la pagina q corresponda, el problema es como obtengo esas variables en la pagina direccionada, para que las muestre.
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 07:55.