Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2014, 01:24
lolo435
 
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!