Pregunta:
Fecha: 10-05-2017 05:29:53
(En Español)
Si alguien puede darme una mano mas que agradecida
Backend Estación Meteorológica: promedio no arroja resultados[Resuelta]
Hola gente, gracias a la generosidad de un integrante de esta comunidad me ha pasado el siguiente codigo... el problema es que me arroja o 0 o numeros que no van, el unico resultado que tengo es de temperatura y direccion del viento que son equivocados, el resto me da cero.Si alguien puede darme una mano mas que agradecida
<?php
if (isset($_POST["fechaMin"], $_POST["fechaMax"] ) && !empty($_POST["fechaMin"]) && !empty($_POST["fechaMax"])) {
// si Los datos recibidos no son vacios y estan definidos muestro los resulatdos caso contarrio doy un error
$fechaMin = trim($_POST["fechaMin"])." 00:00:00";
$fechaMax = trim($_POST["fechaMax"])." 23:59:59";
// valido que las fechas sean correctos en su formato
if (!validateDate($fechaMin) || !validateDate($fechaMax)) {
echo "Las fechas son incorrectas";
exit();
}else{
if ($fechaMin>$fechaMax) {
echo "La Fecha Minima debe ser menor o igual que la Fecha Maxima.";
exit();
}
}
$enlace = mysqli_connect("localhost","c0620200_sens","le76FIvoru", "c0620200_sens");
if (!$enlace) {
echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
exit;
} else {
$consultaSQL = "SELECT AVG(BarPressure) AS Promedio_BarPressure, AVG(WindSpeedAverage) AS Promedio_WindSpeedAverage , AVG(WindDirection) AS Promedio_WindDirection , AVG(WindSpeedMax) AS Promedio_WindSpeedMax, AVG(Temperature) AS Promedio_Temperature , AVG(RainfallOneHour) AS Promedio_RainfallOneHour, AVG(Humidity) AS Promedio_Humidity FROM valores WHERE fecha BETWEEN '$fechaMin' AND '$fechaMax'";
if ($resultado = mysqli_query($enlace, $consultaSQL)) {
echo "Resultados: <br/>";
$columna = mysqli_fetch_assoc($resultado);
echo 'Presión: '.$columna["Promedio_BarPressure"] . '<br/>';
echo 'Velocidad del viento: '.$columna["Promedio_WindSpeedAverage"] . '<br/>';
echo 'Direccion del viento: '.$columna["Promedio_WindDirection"] . '<br/>';
echo 'Velocidad Max viento: '.$columna["Promedio_WindSpeedMax"] . '<br/>';
echo 'Temperatura: '.$columna["Promedio_Temperature"] . '<br/>';
echo 'Lluvia: '.$columna["Promedio_RainfallOneHour"] . '<br/>';
echo 'Humedad: '.$columna["Promedio_Humidity"] . '<br/>';
mysqli_close($enlace);
} else {
echo 'No hay resultados';
}
}
}else{
echo "No se ha ingresado las fechas";
}
function validateDate($date, $format = 'Y-m-d H:i:s')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
?>
Votos: 1 -
Respuestas: 5 -
Vistas: 12
Compartir en: Google
Facebook
Twitter
LinkedIn
Link
Respuestas:
-
Fecha: 10-05-2017 06:05:32 La consulta
SELECT AVG(BarPressure) AS Promedio_BarPressure, AVG(WindSpeedAverage) AS Promedio_WindSpeedAverage , AVG(WindDirection) AS Promedio_WindDirection , AVG(WindSpeedMax) AS Promedio_WindSpeedMax, AVG(Temperature) AS Promedio_Temperature , AVG(RainfallOneHour) AS Promedio_RainfallOneHour, AVG(Humidity) AS Promedio_Humidity FROM valores WHERE fecha BETWEEN '$fechaMin' AND '$fechaMax'"
hacela en el phpmyadmin y ahí ves la respuesta.
Obviamente, modifica $fechaMin y $fechaMax por valores.
Y ahí vas viendo...
en el caso que la rta sea la deseada, el problema está en el código php y no en la consulta. Votos: 2 - Link respuesta -
Fecha: 10-05-2017 11:33:17 IMprime tu variable $consultaSQL con un print_r es decir print_r($consultaSQL); ésto para ver si esta correcto el query copias el query y en tu gestor de BDD lanzalo para ver si te da errores Votos: 1 - Link respuesta
-
-
Fecha: 14-05-2017 19:05:19 Hola Anabel
La pregunta viene basada el siguiente link
Como te han sugerido, con phpMyAdmin realiza una consulta del tipo
SELECT AVG(BarPressure) AS Promedio_BarPressure, AVG(WindSpeedAverage) AS Promedio_WindSpeedAverage , AVG(WindDirection) AS Promedio_WindDirection , AVG(WindSpeedMax) AS Promedio_WindSpeedMax, AVG(Temperature) AS Promedio_Temperature , AVG(RainfallOneHour) AS Promedio_RainfallOneHour, AVG(Humidity) AS Promedio_Humidity FROM valores WHERE fecha BETWEEN '2016-11-04 00:00:00' AND '2016-11-04 23:59:59'
Cambia las fechas según corresponda.
En las columnas que te da como resultado 0 tiene valores distintos a 0?
Nos pasarias un conjunto de valores de cada columna a fin de hacer pruebas?
Postealo en formato texto y no como imagen, de esta manera seria mas practico.
O bien exporta la tabla ;)
Saludos Votos: 1 - Link respuesta -
Fecha: 15-05-2017 14:50:23 Ya lo he resuelto, cuando insertaba los datos los asignaba mal es decir a[0] iba en a[1]..ya asi pasaba con todas las asignaciones.. es por eso que me levantaba mal los datos.
muchas gracias a todos por su colaboracion Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
