Mój kod pobiera z bazy interesujące mnie rzeczy i zapisuje do pliku TXT.
No wszystko fajnie działało dopóty nie dodałem tego badziewia:
SUM(ROUND(`Przejechalem`,1)) AS `Suma`
Chciałem w jednym zapytaniu móc zwrócić sobie wszystkie wyniki z bazy ORAZ sumę kolumny Przejechalem, potraktowaną funkcją ROUND.
W wyniku działania skryptu teraz ... otrzymuję całą sumę (to jest poprawne) ale zapisuje mi się tylko JEDEN i to pierwszy wiersz z tabeli a nie wszystkie :/
Nie rozumiem tego działania. Co się zmieniło?
<?php
require '../config.php';
?>
<form action="?" method="POST">
Podaj rok
<input type="text" name="years" />
<input type="submit" name="added" />
</form>
<?php
if (isset($_POST['added']))
{
$file = "raport.txt";
$years = $_POST['years'];
$link=$db->query("SELECT `data`, ROUND(`Przejechalem`,1) AS `Przejechalem`, SUM(ROUND(`Przejechalem`,1)) AS `Suma` FROM `newsy` WHERE year(data) = $years");
while($row = $link->fetch_array())
{
$data = date('d.m.Y',strtotime($row['data']));
$Przejechalem = $row['Przejechalem'];
$suma = $row['Suma'];
echo $do_pliku = $data . "\t" . $Przejechalem . " km\n\r";
file_put_contents($file, $do_pliku, FILE_APPEND);
}
}
echo "zapisano!";
echo "<br>Suma dla raportu: " .$suma;
?>