Foros del Web » Programando para Internet » PHP »

utilizar varibales de sesion para consulta mysql

Estas en el tema de utilizar varibales de sesion para consulta mysql en el foro de PHP en Foros del Web. hola, estoy haciendo una pagina para seguimiento de tareas, despues de la validacion del usuario, quiero hacer un detalle de las tareas para ese usuario. ...
  #1 (permalink)  
Antiguo 25/01/2009, 06:43
Avatar de nando1209  
Fecha de Ingreso: enero-2009
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
utilizar varibales de sesion para consulta mysql

hola,
estoy haciendo una pagina para seguimiento de tareas, despues de la validacion del usuario, quiero hacer un detalle de las tareas para ese usuario.
Alguien sabe como hacer la consulta sql donde el where usuario = $_SESSION['MM_Username']???

Gracias!!
  #2 (permalink)  
Antiguo 25/01/2009, 07:16
 
Fecha de Ingreso: enero-2009
Mensajes: 165
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: utilizar varibales de sesion para consulta mysql

esto dices?
Código PHP:
<? 
$usuario 
$_SESSION['MM_Username'];
$query "SELECT * from tareas where usuario = $usuario" ?>
  #3 (permalink)  
Antiguo 25/01/2009, 11:45
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: utilizar varibales de sesion para consulta mysql

Si se va comparar una cadena siempre de debe poner comillas si no da error
Código sql:
Ver original
  1. SELECT * FROM tareas WHERE usuario = 'usuario'

PD: tu problema es de programación y no de base de datos
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #4 (permalink)  
Antiguo 25/01/2009, 14:07
Avatar de nando1209  
Fecha de Ingreso: enero-2009
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: utilizar varibales de sesion para consulta mysql

Estimados,

si hago un <? echo $_SESSION['MM_Usarname']);?> me aparece el nombre del usuario en sesion.

Pero, si hago esto:

Cita:
<? $usuario = $_SESSION['MM_Usarname'];?>
<?php
mysql_select_db($database_general, $general);
$query_Tareas_Pendientes = "SELECT * FROM general WHERE afectado=$usuario;";
$Tareas_Pendientes = mysql_query($query_Tareas_Pendientes, $general) or die(mysql_error());
$row_Tareas_Pendientes = mysql_fetch_assoc($Tareas_Pendientes);
$totalRows_Tareas_Pendientes = mysql_num_rows($Tareas_Pendientes);
?>
El resultado de la consulta es error:
Cita:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Alguien sabe que esta mal???

Gracias!!
  #5 (permalink)  
Antiguo 25/01/2009, 16:48
 
Fecha de Ingreso: enero-2009
Mensajes: 165
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: utilizar varibales de sesion para consulta mysql

revisa la corrección que hizo Genetix
Cita:
Si se va comparar una cadena siempre de debe poner comillas si no da error
Código sql:


SELECT * FROM tareas WHERE usuario = 'usuario'
$query_Tareas_Pendientes = "SELECT * FROM general WHERE afectado='$usuario' ";
  #6 (permalink)  
Antiguo 25/01/2009, 17:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: utilizar varibales de sesion para consulta mysql

Lo importante cuando se programan consultas es no tener en cuenta lo que se muestra en PHP, sino lo que finalmente queda como consulta que el MySQL recibirá.
Por eso, en esta sección no se debe poner código PHP o de cualquier otra índole, sino sólo SQL (Función de la sección de Base de Datos). A priori, no es posible saber si las cadenas de texto que conforman las sentencias de SQL se están cargando bien, porque hay mucho PHP ensuciando el SQL... y puede haber errores allí que resulten invisibles, escondidos en las variables.

Veamos el caso, esto:
Cita:
<? $usuario = $_SESSION['MM_Usarname'];?>
<?php
mysql_select_db($database_general, $general);
$query_Tareas_Pendientes = "SELECT * FROM general WHERE afectado=$usuario;";
$Tareas_Pendientes = mysql_query($query_Tareas_Pendientes, $general) or die(mysql_error());
$row_Tareas_Pendientes = mysql_fetch_assoc($Tareas_Pendientes);
$totalRows_Tareas_Pendientes = mysql_num_rows($Tareas_Pendientes);
?>
contiene solamente esta información útil:
Código:
SELECT * FROM general WHERE afectado=$usuario;
El resto es asunto de programación en PHP.
Pero en este caso, notemos, nos dice que hay un error de sintaxis. Ahora bien, la sentencia es ANSI SQL correctamente escrito, por lo que funciona en todos los DBMS, de modo que no puede ser esa estructura la que falle. Solamente puede ser la variable.
Pero: ¿Qué contiene la variable $usuario? Yo no lo sé, puede que esté bien, que tenga palabras reservadas o que venga vacía. Y en este último caso, la consulta fallará siempre.
Es muy posible que lo que pase sea que (como ya lo dijo Genetix), no estén los apóstrofes necesarios para encerrar una cadena de texto en SQL. Yo personalmente me inclino a pensar que la variable esta vacía, porque de lo contrario el error sería de campo desconocido en la sentencia... Pero eso es asunto de programación PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 25/01/2009, 22:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: utilizar varibales de sesion para consulta mysql

Tema trasladado a PHP.
  #8 (permalink)  
Antiguo 27/01/2009, 15:49
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: utilizar varibales de sesion para consulta mysql

Hola nando 1209, veo que lo haces con Dream

Si mal no recuerdo puedes poner directamente la variable de sesion de esta forma :

Código PHP:
<?php
mysql_select_db
($database_general$general);
$query_Tareas_Pendientes "SELECT * FROM general WHERE afectado='".$_SESSION['MM_Username']."'";
$Tareas_Pendientes mysql_query($query_Tareas_Pendientes$general) or die(mysql_error());
$row_Tareas_Pendientes mysql_fetch_assoc($Tareas_Pendientes);
$totalRows_Tareas_Pendientes mysql_num_rows($Tareas_Pendientes);
?>
De todas formas cuando haces el Recordset en Dream y le das Filter By.........alli puedes indicar que la consulta sera filtrada por una variable de sesion, le escribes el nombre y el pone otro codigo un poco diferente pero que funcionara sin tener que cambiar nada manualmente.


Saludos.
__________________
EL LIMITE ES EL UNIVERSO
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:41.