Nueva pregunta

Pregunta:

Fecha: 10-05-2017 05:29:53 (En Español)

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;
}
?>
Etiquetas: Back-end - MySQL - PHP - Pregunta 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: 11-05-2017 05:41:25 gracias gente.. lo pruebo y comento   Votos: 0 - 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
 
frjcbbae garagebible.com