Foros del Web » Programando para Internet » PHP »

sacar informacion con parametros

Estas en el tema de sacar informacion con parametros en el foro de PHP en Foros del Web. buenos días amigos, a ver quien me tira una manito por aqui: tengo este codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $cargo = mysql_query ( ...
  #1 (permalink)  
Antiguo 18/01/2013, 17:47
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Información sacar informacion con parametros

buenos días amigos, a ver quien me tira una manito por aqui:

tengo este codigo:
Código PHP:
Ver original
  1. $cargo=mysql_query("select tuser from user where username=$_SESSION['usuario'] AND id=$_SESSION['id']", $link);

intento guardar en la variable $cargo el resultado de la consulta a la tabla user en donde cojo el valor de tuser siempre y cuando el usuario guardado de la variable de sesion $_SESSION['usuario'] y su ID guardado en la variable de sesión $_SESSION['id'] sean los mismos... espero haberlo explicado correctamente, el error es este:


Código HTML:
Ver original
  1. Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\menuADM\canoti.php on line 35

la idea es que luego hago la compraracion:

Código PHP:
Ver original
  1. if ($cargo == $_SESSION['tuser']) {

esto lo hago para evitar el hack y modificación de las variables en las cockies por tercero, en si $cargo debe de ser igual a $_SESSION['tuser'] y si no es así enviara un error de intento de hack...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #2 (permalink)  
Antiguo 18/01/2013, 17:49
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: sacar informacion con parametros

Las variables $_SESSION['usuario'] debes encerrarlas entre llaves

Código PHP:
Ver original
  1. {$_SESSION['usuario']}

y username va entre comillas.

Código PHP:
Ver original
  1. username='{$_SESSION['usuario']}'
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 18/01/2013, 18:02
Avatar de RastaMart  
Fecha de Ingreso: noviembre-2006
Mensajes: 91
Antigüedad: 18 años
Puntos: 3
Respuesta: sacar informacion con parametros

Mira prueba poniéndolo así:

$cargo=mysql_query("select tuser from user where username='".$_SESSION['usuario']."' AND id='".$_SESSION['id']."'", $link);

Quiero pensar que es por concatenar cadenas con variables.
  #4 (permalink)  
Antiguo 18/01/2013, 18:07
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: sacar informacion con parametros

ok lo que estoy tratando es sacar el valor de "tuser" para el usuario que tiene la sesion activa. ya elimine el error pero $cargo me sale en blanco... sin valor
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #5 (permalink)  
Antiguo 18/01/2013, 18:10
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: sacar informacion con parametros

Te falta usar una función para sacar esa información, como mysql_fetch_assoc.

No olvides que esa extensión mysql_* quedará obsoleta a partir de PHP 5.5.0. Debes leer esto:

http://php.net/manual/es/mysqlinfo.api.choosing.php

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 18/01/2013, 18:10
Avatar de RastaMart  
Fecha de Ingreso: noviembre-2006
Mensajes: 91
Antigüedad: 18 años
Puntos: 3
Respuesta: sacar informacion con parametros

Imprime en pantalla tu consulta, tus sessiones... y revisalo por fuera...
para ver si en vdd estas haciendo bien la consulta.
echo "user ".$_SESSION['usuario']."<br>";

la consulta revisa desde mysql si te devuelve el valor que quieres...
  #7 (permalink)  
Antiguo 18/01/2013, 19:03
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: sacar informacion con parametros

por supuesto que he imprimido las variables de sesion por fuera... no soy tan tonto como para no comprovar el error antes de venir al foro por ayuda.

y pos supuesto que funcionan, mas la consulta a la base de datos no me devuelbe el valor de la columna de la tabla específicamente... ya que tambien la mande a imprimir y no sale nada por pantalla
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #8 (permalink)  
Antiguo 18/01/2013, 19:28
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: sacar informacion con parametros

Muestra el código de lo que estás haciendo. Si estas usando mysql_fetch_assoc?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 18/01/2013, 19:32
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: sacar informacion con parametros

Código PHP:
Ver original
  1. $cargo=mysql_query("select tuser from user where username=$preuser AND id=$preid ", $link);
  2.     $my_error = mysql_error($link);
  3.     $revcargo=mysql_fetch_assoc($cargo);
  4.     if ( $precargo >= $revcargo) {
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #10 (permalink)  
Antiguo 18/01/2013, 19:36
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: sacar informacion con parametros

$revcargo? Debes acceder al índice del array $revcargo['tu campo']

hasle un print_r a $revcargo a ver que contenido tiene.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #11 (permalink)  
Antiguo 18/01/2013, 19:37
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: sacar informacion con parametros

Cita:
Iniciado por andresdzphp Ver Mensaje
$revcargo? Debes acceder al índice del array $revcargo['tu campo']

hasle un print_r a $revcargo a ver que contenido tiene.
Código PHP:
Ver original
  1. Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\menuADM\canoti.php on line 39


manda error
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #12 (permalink)  
Antiguo 18/01/2013, 19:40
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: sacar informacion con parametros

Entonces tu error sigue estando en la consulta. Si alguna variable es string debe ir entre comillas:

Si username no es un número, debe tener comillas:

Código PHP:
Ver original
  1. username='$preuser' AND id=$preid

agrega el or die(mysql_error()); a mysql_query para ir viendo los errores.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #13 (permalink)  
Antiguo 18/01/2013, 19:43
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: sacar informacion con parametros

Cita:
Iniciado por andresdzphp Ver Mensaje
$revcargo? Debes acceder al índice del array $revcargo['tu campo']

hasle un print_r a $revcargo a ver que contenido tiene.
Código PHP:
Ver original
  1. Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\menuADM\canoti.php on line 39


manda error

no estoy entendiendo osea por que tiene que ser un array si es algo directo lo que estoy sacando de la tabla no son mucho datos en un valor en concreto:....

de la tabla de usuario quiero que busque el tipo de usuario "tuser" del usuario que tiene nombre "username=$preuser" y que tiene ID "id=$preid" esta es la estructura de la tabla de usuarios:

Código SQL:
Ver original
  1. DROP TABLE IF EXISTS `user`;
  2. CREATE TABLE IF NOT EXISTS `user` (
  3.   `id` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID de usuario',
  4.   `username` VARCHAR(50) COLLATE utf8_spanish_ci NOT NULL,
  5.   `password` VARCHAR(100) COLLATE utf8_spanish_ci NOT NULL,
  6.   `email` VARCHAR(150) COLLATE utf8_spanish_ci NOT NULL,
  7.   `tuser` INT(3) NOT NULL,
  8.   PRIMARY KEY (`id`),
  9.   UNIQUE KEY `id` (`id`),
  10.   UNIQUE KEY `username` (`username`),
  11.   UNIQUE KEY `email` (`email`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci COMMENT='Tabla Usuarios y Perfil' AUTO_INCREMENT=1 ;

no entiendo que pasa...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #14 (permalink)  
Antiguo 18/01/2013, 19:45
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: sacar informacion con parametros

Cita:
`username` varchar(50)
ahí está tu respuesta, debe ir entre comillas username, como te dije 2 veces

así:

Código PHP:
Ver original
  1. $cargo = mysql_query("select tuser from user where username='$preuser' AND id=$preid limit 1", $link) or die(mysql_error());
  2. $revcargo = mysql_fetch_assoc($cargo);
  3. echo $revcargo['tuser'];
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #15 (permalink)  
Antiguo 18/01/2013, 19:47
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: sacar informacion con parametros

ok esto es lo que hay en sesion:

Código PHP:
Ver original
  1. $query = mysql_query("SELECT id,username,password,nombre,apellido,email,telefono,foto,direccion,firma,tuser FROM user WHERE username = '$username'") or die(mysql_error());
  2.             $row = mysql_fetch_array($query);
  3.             $_SESSION["s_username"] = $row['username'];
  4.             $_SESSION['logueado'] = "si";
  5.             $_SESSION['id'] = $row['id'];
  6.             $_SESSION['usuario'] = $username;
  7.             $_SESSION['nombre'] = $row['nombre'];
  8.             $_SESSION['apellido'] = $row['apellido'];
  9.             $_SESSION['email'] = $row['email'];
  10.             $_SESSION['telefono'] = $row['telefono'];
  11.             $_SESSION['foto'] = $row['foto'];
  12.             $_SESSION['direccion'] = $row['direccion'];
  13.             $_SESSION['firma'] = $row['firma'];
  14.             $_SESSION['tuser'] = $row['tuser'];

ok funciona la parte de la validacion ahora estuve imprimiendo las variables y me mando esta informacion:

Código PHP:
Ver original
  1. echo " $preuser";
  2.     echo " $preid";
  3.     echo " $precargo";
  4.     echo " $revcargo";

Cita:
Notice: Array to string conversion in C:\xampp\htdocs\menuADM\canoti.php on line 81
Array
no importa que usuario use...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Última edición por arcanisgk122; 18/01/2013 a las 20:06
  #16 (permalink)  
Antiguo 18/01/2013, 20:12
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: sacar informacion con parametros

Ese error es porque $revcargo es un array y debes imprimir un índice:

Código PHP:
Ver original
  1. echo $revcargo['tuser'];

qué intentas hacer ahora?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #17 (permalink)  
Antiguo 18/01/2013, 20:33
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: sacar informacion con parametros

listo me adelante antes y hice la prueba del indice y bueno funciona... gracias a ti andrez.... estaba tratando de hacer el filtro de usuario para verificar ue tubiera permisos para publicar una noticia en un sistema de noticias claro que como la sesion de usuario se maneja por variables de sesion en cockies trate de hacer algo en tal caso alguien venga de gracioso y edite la cockies...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Etiquetas: informacion, parametros, select, sql, tabla, variables
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 10:19.