
13/05/2014, 01:24
|
| | Fecha de Ingreso: abril-2013
Mensajes: 36
Antigüedad: 11 años, 11 meses 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! |