Autor Zpráva
netrats
Profil
Ahoj, jsem v PHP začátečník a nemůžu nikde najít řešení na můj problém, proto prosím o pomoc.
Do MYSQL si ukládám data z meteostanice a pomocí PHP si je vytahuju.
V MYSQL je teplota uložena jako double, rok jako year(4) a datum jako date.
Napsal jsem si MYSQL dotaz na spočítání průměrné teploty za daný rok a za daný měsíc

$mesic = date("m");
$rok = date("Y");
$sql_prikaz5 = "SELECT AVG(teplota) FROM loucka WHERE rok=$rok";
$sql_prikaz8 = "SELECT AVG(teplota) FROM loucka WHERE EXTRACT(MONTH FROM datum)=$mesic";

Zajímá mě, proč rok funguje a měsíc ne, píše to chybu Object of class mysqli_result could not be converted to string a hlavně, jak to opravit :-).

Díky všem za pomoc a za vysvětlení.
Camo
Profil
Na také niečo existuje funkcia month(datum) ktorá vytiahne mesiac z dátumu.
A zdá sa, že robíš niečo zle v spracovávaní mysqli_resultu podľa toho erroru.
netrats
Profil
Ahoj, děkuji za odpověď a za pomoc, už jsem na to přišel,
posílám fungující interpretaci.

$vysledek8 = mysqli_query($db_spojeni, $sql_prikaz8);
if (!$vysledek8){echo 'Poslání SQL příkazu Loučka se nepodařilo, sorry';echo '<br />';echo 'Popis chyby: ', mysqli_error($db_spojeni);exit();}

echo ("Měření pro tento mesic (".$mesic."):");echo "<br />";

while($row8 = mysqli_fetch_array($vysledek8)){
echo "Průměrná teplota: ".round($row8["AVG(teplota)"], 2)."°C";
echo "<br />";
}


Jen se chci ještě zeptat, když použiju dotaz

$sql_prikaz9 = "SELECT teplota FROM loucka WHERE EXTRACT(MONTH FROM datum)=$mesic ORDER BY teplota asc limit 1";

a v daném měsíci není v databázi žádný záznam, tak to nic nevypíše, ani chybu, jak to správně ošetřit ???


Díky za pomoc :-).
Tori
Profil
Pokud má výsledek nula řádků (http://www.php.net/manual/en/mysqli-result.num-rows.php), vypíšete nějaké info. Jinak vypíšete teploty.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: