Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Esta sentencia sql no devuelve ningún registro

Estas en el tema de Esta sentencia sql no devuelve ningún registro en el foro de PHP en Foros del Web. Buenas, La siguiente sentencia, si la ejecuta en phpmyadmin, me devuelve muchos registros: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT CONCAT ( P.nombre_poblacion , ' ...
  #1 (permalink)  
Antiguo 04/09/2015, 06:16
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Esta sentencia sql no devuelve ningún registro

Buenas,
La siguiente sentencia, si la ejecuta en phpmyadmin, me devuelve muchos registros:

Código MySQL:
Ver original
  1. SELECT CONCAT(P.nombre_poblacion, ' (', COUNT(*), ')') AS pueblos FROM t_un U INNER JOIN t_poblacion P ON U.poblacion = P.id_poblacion WHERE U.tipo = 6 GROUP BY U.poblacion ORDER BY P.nombre_poblacion

En cambio, la misma, pasando por parámetro el tipo, devuelve 0 registros, y no sé ver porqué.

Código PHP:
Ver original
  1. <?php
  2.     $tipo = $_REQUEST["prm"];
  3.  
  4.     $consulta = "SELECT CONCAT(P.nombre_poblacion, ' (', COUNT(*), ')') AS pueblos FROM t_un U INNER JOIN t_poblacion P ON U.poblacion = P.id_poblacion WHERE U.tipo = ".$tipo." GROUP BY U.poblacion ORDER BY P.nombre_poblacion";
  5.     $qSelect =  mysql_query($consulta);
  6.     $registros = mysql_num_rows($qSelect);
  7.  
  8.     if ($registros > 0){
  9.         while ($fila = mysql_fetch_assoc($qSelect))
  10.             $retorn .= $fila['pueblos'];
  11.     }
  12.    
  13.     echo "Registros: ".$retorn;
  14. ?>

Alguien ve donde está el error? Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 04/09/2015, 06:28
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 6 meses
Puntos: 261
Respuesta: Esta sentencia sql no devuelve ningún registro

Hola mblascog,

Si te retorna registros la consulta está claro que en teoría no es de ahí.

¿Tienes activado el reporte de errores de php?

¿Has probado de forma literal con el ejemplo que si te retorna resultados?
Código PHP:
$consulta "SELECT CONCAT(P.nombre_poblacion, ' (', COUNT(*), ')') AS pueblos ";
$consulta.= "FROM t_un U INNER JOIN t_poblacion P ON U.poblacion = P.id_poblacion ";
$consulta.= "WHERE U.tipo = 6 ";
$consulta.= "GROUP BY U.poblacion ";
$consulta.= "ORDER BY P.nombre_poblacion"
¿Has provado a seguir el rastro de las variables ?
Código PHP:
var_dump(
    
$tipo,
    
$qSelect,
    
$registros,
); 
Esto debería de darte pistas de que puede estar fallando.

Saludos,

PD.: He editado el mensaje original para borrar el código, no se permite poner códigos de programación en esta parte del foro. Pensé que estaba en el de php, lo siento Lo han movido, así que vuelvo a editarlo
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Última edición por Uncontroled_Duck; 04/09/2015 a las 06:38 Razón: por cambio de foro...
  #3 (permalink)  
Antiguo 04/09/2015, 06:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Esta sentencia sql no devuelve ningún registro

Si ejecutando la sentencia con valores constantes anda bien, pero cuando pasas los valores programáticamente no, la respuesta es sencilla: Los valores no están entrando bien en PHP...

No es un problema de MySQL, es un defecto en las variables de PHP y por ende es algo que debes verificar en programación; recuerda que MySQL no lee ni interpreta PHP, por lo que lo que le llega está simplemente mal construido, o no contiene los valores que supones que tienen.

Programación es OFF TOPIC en los foros de BBDD.

Muevo tu post al foro correcto para que te ayuden a analizar por qué los valores no llegan correctamente a la sentencia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 04/09/2015, 06:38
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: Esta sentencia sql no devuelve ningún registro

Perdón!!!
Me acabo de dar cuenta del error. He olvidado el include para abrir la base de datos.
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Etiquetas: devuelve, join, mysql, registro, select, sentencia, sql
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 13:20.