Foros del Web » Programando para Internet » PHP »

¿Por qué no me muestra la consulta en la base de datos?

Estas en el tema de ¿Por qué no me muestra la consulta en la base de datos? en el foro de PHP en Foros del Web. Buenas, tengo un problemilla a la hora de mostrar una consulta a una base de datos. Si ejecuto consultas sencillas, se realiza correctamente, por ejemplo ...
  #1 (permalink)  
Antiguo 13/05/2014, 01:24
 
Fecha de Ingreso: abril-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
¿Por qué no me muestra la consulta en la base de datos?

Buenas, tengo un problemilla a la hora de mostrar una consulta a una base de datos. Si ejecuto consultas sencillas, se realiza correctamente, por ejemplo

<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "root", "root", "db");

/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}

$consulta = "SELECT * FROM clientes";

if ($sentencia = $mysqli->prepare($consulta)) {

/* ejecutar la consulta */
$sentencia->execute();

/* almacenar el resultado */
$sentencia->store_result();

printf("Número de filas: %d.\n", $sentencia->num_rows);

/* cerrar la sentencia */
$sentencia->close();
}

/* cerrar la conexión */
$mysqli->close();
?>


resultado

Número de filas: 63.

me muestra correctamente las filas recuperadas ( realmente estoy mostrando los resultados en una tabla pero como me daba error me he puesto a probar con esto)


Cuando voy a ejecutar consultas mas complejas, o simplemente distintas del tipo


<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "root", "root", "db");

/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}

$consulta = "SELECT * FROM HISTORICO_FILIAL_TOTAL
ORDER BY AÑO_MES, NOM_CLIENTE_IMPUTACION;
";

if ($sentencia = $mysqli->prepare($consulta)) {

/* ejecutar la consulta */
$sentencia->execute();

/* almacenar el resultado */
$sentencia->store_result();

printf("Número de filas: %d.\n", $sentencia->num_rows);

/* cerrar la sentencia */
$sentencia->close();
}

/* cerrar la conexión */
$mysqli->close();
?>

no me sale nada por pantalla, he probado quitando el ORDER BY y si se ejecuta

¿A que se debe?

Después he probado otra:

<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "root", "root", "db");

/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}

$consulta = "SELECT DISTINCT SERVICIOS.GRUPO_SERVICIO AS GRUPO, ALIAS.SUBSERVICIO
FROM

(SELECT DISTINCT AÑO_MES, COD_SERVICIO,SUBSERVICIO,COD_SUBSERVICIO
FROM HISTORICO_FILIAL_TOTAL
WHERE COD_CLIENTE_IMPUTACION=40020
ORDER BY AÑO_MES, NOM_CLIENTE_IMPUTACION) alias

INNER JOIN SERVICIOS

ON(SERVICIOS.COD_SERVICIO=alias.COD_SERVICIO)



ORDER BY AÑO_MES,ORDEN";

if ($sentencia = $mysqli->prepare($consulta)) {

/* ejecutar la consulta */
$sentencia->execute();

/* almacenar el resultado */
$sentencia->store_result();

printf("Número de filas: %d.\n", $sentencia->num_rows);

/* cerrar la sentencia */
$sentencia->close();
}

/* cerrar la conexión */
$mysqli->close();
?>


Y ni quitando los ORDER BY


¿Que es lo que ocurre? Todas las consultas estan bien, probadas y ejecutadas en navicat.

A ver si alguien me puede ayudar :(


Gracias y un saludo!
  #2 (permalink)  
Antiguo 13/05/2014, 01:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: ¿Porque no me muestra la consulta en la base de datos?

Cita:
...he probado quitando el ORDER BY y si se ejecuta...
Ejecuta

Código PHP:
Ver original
  1. echo $consulta;

despues de cargar la query en la variable para ver si se ha escrito bien

Esto no se va a ejecutar
Código MySQL:
Ver original
  1. SELECT * FROM HISTORICO_FILIAL_TOTALORDER BY AÑO_MES, NOM_CLIENTE_IMPUTACION;

esto si
Código MySQL:
Ver original
  1. SELECT * FROM HISTORICO_FILIAL_TOTAL ORDER BY AÑO_MES, NOM_CLIENTE_IMPUTACION;

yo para evitar esto problema escribo las query bien identadas

Código PHP:
Ver original
  1. $consulta = "SELECT * ".
  2.                     "FROM HISTORICO_FILIAL_TOTAL ".
  3.                          "ORDER BY AÑO_MES, ".
  4.                                       "NOM_CLIENTE_IMPUTACION;";

es más lento pero permite corregir estos errores.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 13/05/2014, 01:48
 
Fecha de Ingreso: abril-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Vale, ya se que es lo que pasa, las Ñ no las reconoce bien y por lo tanto no se ejecuta la consulta. Hay alguna forma de poder ''procesarlas''? o simplemente la quito y la sustituyo por una N en la base de datos?


Gracias!

Realizando esta consulta despues de crear la conexion tb se soluciona

mysql_query("SET NAMES 'utf8'");

Me gustaria cambiar el cotejamiento, que es el problema, alguien sabe como hacerlo con MYSQL workbech? que es la herramienta que estoy utilizando

Cita:
Iniciado por lolo435 Ver Mensaje
Realizando esta consulta despues de crear la conexion tb se soluciona

mysql_query("SET NAMES 'utf8'");

Me gustaria cambiar el cotejamiento, que es el problema, alguien sabe como hacerlo con MYSQL workbech? que es la herramienta que estoy utilizando

Ahora mismo la tengo como

utf8_spanish_ci
la he visto en phpmyadmind

Pero sigue dando el mismo error si no pongo

mysql_query("SET NAMES 'utf8'");

:(

Última edición por Triby; 13/05/2014 a las 02:47 Razón: Combinar mensajes seguidos
  #4 (permalink)  
Antiguo 13/05/2014, 02:35
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: ¿Porque no me muestra la consulta en la base de datos?

anno o anio es la mejor solución.

Lo mejor es no usar simbolos raros en la definiciaón de la estructura de la base de datos, ni ñÑ ni çÇ ni áéíóú.... etc.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 14/05/2014 a las 01:12
  #5 (permalink)  
Antiguo 13/05/2014, 02:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Porque no me muestra la consulta en la base de datos?

Como bien dice quimfv, lo mejor es no usar caracteres raros, aunque sí se puede:

Código MySQL:
Ver original
  1. SELECT `año`, mes, `día` FROM `nombre_extraño`

Sí, es posible, pero mucho más complicado.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 13/05/2014, 09:29
 
Fecha de Ingreso: abril-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: ¿Porque no me muestra la consulta en la base de datos?

Muchas gracias a los dos!!!

Etiquetas: muestra, mysql, select, tabla
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 15:25.