Foros del Web » Programando para Internet » PHP »

Consulta sobre select

Estas en el tema de Consulta sobre select en el foro de PHP en Foros del Web. hola amigos del foro, les quiero hacer una consulta relativamente basica, que hasta ahora me funciono perfecto, pero veo que ahora no esta funcionando correctamente ...
  #1 (permalink)  
Antiguo 14/01/2013, 12:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Consulta sobre select

hola amigos del foro, les quiero hacer una consulta relativamente basica, que hasta ahora me funciono perfecto, pero veo que ahora no esta funcionando correctamente y es la siguiente:

supongamos que en una pagina php tengo lo siguiente:

Código PHP:
$a"ariel";
$_SESSION['id'] = $a;

$id"ariel";

$b"aperitivos"
y en mi base de datos tengo un usuario ariel ya ingresado pero cuya categoria en lugar de llamarse aperitivos se llama entradas

entonces realizo la siguiente consulta:

Código PHP:
$c"select * from restaurant_menu where usuario= '".$id."' or usuario= '".$_SESSION['id']."' and menu_categoria= '".$b."' order by id desc";
$rmysqli_query($db$c) or die (mysqli_error($db));
$nmysqli_num_rows($r); 
si hago un echo a la variable $n deberia darme valor 0, pero en su lugar me da valor 1 y no entiendo porque

alquien podria decirme cual es el error, si es que lo hay?
muchas gracias
saludos
  #2 (permalink)  
Antiguo 14/01/2013, 12:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Consulta sobre select

No podemos adivinar el error, "si es que lo hay" debes ayudarnos a ver el error.

Imprime tu consulta, ¿está bien formada?

Copia y pega la consulta para ejecutarla en phpMyAdmin ¿igual te da resultados?

Finalmente el problema podría ser la consulta de SQL, que resulta un poco ambigua de acuerdo a los operadores, así que tema de PHP no es.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/01/2013, 15:20
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Consulta sobre select

hola amigos del foro, les quiero hacer una consulta relativamente basica, que hasta ahora me funciono perfecto, pero veo que ahora no esta funcionando correctamente y es la siguiente:

supongamos que en una pagina php tengo lo siguiente:

Código PHP:
Ver original
  1. $a= "ariel";
  2. $_SESSION['id'] = $a;
  3.  
  4. $id= "ariel";
  5.  
  6. $b= "aperitivos";

y en mi base de datos tengo un usuario ariel ya ingresado pero cuya categoria en lugar de llamarse aperitivos se llama entradas

entonces realizo la siguiente consulta:

Código PHP:
Ver original
  1. $c= "select * from restaurant_menu where usuario= '".$id."' or usuario= '".$_SESSION['id']."' and menu_categoria= '".$b."' order by id desc";
  2.  $r= mysqli_query($db, $c) or die (mysqli_error($db));

si hago un echo a la variable $n deberia darme valor 0, pero en su lugar me da valor 1 y no entiendo porque

alquien podria decirme cual es el error, si es que lo hay?
muchas gracias
saludos

Última edición por gnzsoloyo; 14/01/2013 a las 17:18
  #4 (permalink)  
Antiguo 14/01/2013, 17:19
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: Consulta sobre select

Las variables de PHP y código de programación no son tema del Foro de MySQL.
Muevo el post al Foro de 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)
  #5 (permalink)  
Antiguo 14/01/2013, 17:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Consulta sobre select

Imprime y ejecuta la consulta en tu RDBMS y ve las filas que te regresa.

Saludos.
  #6 (permalink)  
Antiguo 14/01/2013, 18:02
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Consulta sobre select

como te comentan imprime tu query

Cita:
$c= "select * from restaurant_menu where usuario= '".$id."' or usuario= '".$_SESSION['id']."' and menu_categoria= '".$b."' order by id desc";
echo $c;
prueba sustituyendo la variable de sesion por una variable normal

$misesion=$_SESSION['id'];
sustituyela en el query

Cita:
$c= "select * from restaurant_menu where usuario= '".$id."' or usuario= '".$misesion."' and menu_categoria= '".$b."' order by id desc";
echo $c;
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #7 (permalink)  
Antiguo 14/01/2013, 18:59
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Consulta sobre select

hola, antes que nada mil gracias por brindar una respuesta de razonamiento sencillo,
si bien probe como me comentaste reemplazando la variable de sesion por una comun que tenga el valor de la variable de sesion, no funciono de todos modos

pero esta buena la respuesta, porque hasta ahora me dieron respuestas que son mas dificiles que la consulta que yo hice, o sea son re preguntas
pero volviendo a la consulta, probe como me comentaste y no funciona, y no tengo idea que puede ser, cuando hasta ahora lo habia utilizado muchas veces y siempre funcionaba correctamente
Cita:
Iniciado por PIRRUMAN Ver Mensaje
como te comentan imprime tu query



prueba sustituyendo la variable de sesion por una variable normal

$misesion=$_SESSION['id'];
sustituyela en el query
  #8 (permalink)  
Antiguo 14/01/2013, 19:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Consulta sobre select

¿ya imprimiste el query y lo ejecutaste para ver que este bien formado?
  #9 (permalink)  
Antiguo 15/01/2013, 10:33
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Consulta sobre select

perdon, que significa que imprima mi consulta?
por otro lado, si podria ser la sentencia SQL pero no veo cual puede ser el error, siempre utilice ese tipo de consultas y funciono perfectamente, y el sistema no me tira ningun error
  #10 (permalink)  
Antiguo 15/01/2013, 10:35
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Consulta sobre select

perdon que significa que imprima mi query?
si probe la pagina a ver si funciona?
si es asi, si ya probe y no me tira ningun error en la sentencia sql, el problemita es solo que el musqli_num_rows deberia dar 0 (ya que no existe un usuaqio con los requerimientos de la consulta) y da 1
Cita:
Iniciado por GatorV Ver Mensaje
¿ya imprimiste el query y lo ejecutaste para ver que este bien formado?
  #11 (permalink)  
Antiguo 15/01/2013, 10:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Consulta sobre select

No, a que imprimas la consulta en pantalla:
Código PHP:
Ver original
  1. $c= "select * from restaurant_menu where usuario= '".$id."' or usuario= '".$_SESSION['id']."' and menu_categoria= '".$b."' order by id desc";
  2. echo $c; // así imprimes la consulta en pantalla
  3.  $r= mysqli_query($db, $c) or die (mysqli_error($db));

Ejecutala en tu RDBMS favorito y revisa los resultados, verifica que sean los esperados.

Saludos.
  #12 (permalink)  
Antiguo 15/01/2013, 10:50
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: Consulta sobre select

Cita:
Iniciado por apustilnik Ver Mensaje
perdon, que significa que imprima mi consulta?
por otro lado, si podria ser la sentencia SQL pero no veo cual puede ser el error, siempre utilice ese tipo de consultas y funciono perfectamente, y el sistema no me tira ningun error
El problema es que una consulta puede estar perfectamente escrita a nivel sintáctico, pero no ser correcta escrita a nivel de lógica. Esto es que no tiene errores, pero las condiciones puestas en el predicado (WHERE) no son las adecuadas para el resultado que se busca.
Bien podría suceder, también, que las variables no contengan lo que se supone que contienen, y en ese caso el resultado tampoco es el correcto, pero como ese contenido es invisible mirando el script, la única forma de saber si los valores y la sintaxis es correcta, es que recuperes la sentencia tal y como al DBMS le llega. No lo que supones que llega, sino lo que es real.
¿Se entiende la distinción?

De allí la necesidad de hacer lo que GatorV te dice.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql, select, sql, variables, 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 09:33.