New question

Question:

Date: 10-05-2017 05:29:53 (In Spanish)

Backend Estación Meteorológica: promedio no arroja resultados[Resolved]

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;
}
?>
Tags: Back-end - MySQL - PHP - Question Votes: 1 - Answers: 5 - Views: 12 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 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.
      Votes: 2 - Link answer
     
  • Date: 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   Votes: 1 - Link answer
     
  • Date: 11-05-2017 05:41:25 gracias gente.. lo pruebo y comento   Votes: 0 - Link answer
     
  • Date: 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
      Votes: 1 - Link answer
     
  • Date: 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
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com