Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Łączenie 3 tabel i wyświetlanie sumowanych wyników
Forum PHP.pl > Forum > Przedszkole
brzanek
Witam mam zapytanie które łączy trzy tabele i wyświetla sumę wartości z jednej z tabeli
Tak wygląda zapytanie
  1. $result = $mysqli->query("SELECT SUM(miesieczna_suma_opadu) AS miesieczna_suma_opadu, nr_stacji, lat_stacji, lon_stacji, nazwa_stacji, miesiac FROM stacje_meteo_wspolzedne LEFT JOIN stacje_meteo ON stacje_meteo_wspolzedne.nr_stacji = stacje_meteo.nr_stacji LEFT JOIN opad_2010 ON stacje_meteo_wspolzedne.nr_stacji = opad_2010.nr_stacji WHERE lat_stacji BETWEEN 14.194074 AND 16.822401 AND lon_stacji BETWEEN 52.618755 AND 54.579257 ORDER BY nazwa_stacji ASC");
  2. while ( $row = mysqli_fetch_array($result) ) {
  3. echo '<div>'.$row['miesieczna_suma_opadu'].'</div>';
  4. }

Niestety nic się nie pojawia
Pomoże ktoś?
trueblue
Wykonywałeś zapytanie bezpośrednio na bazie danych?
brzanek
Nie wykonałem w pliku php
nospor
Skoro nie wykonales tego w pliku php to w jak to wykonales?
brzanek
Sorry wykonałem w pliku php
nospor
Super, to skoro juz wiemy, jak wazne jest uzywanie przecinkow, przejdzmy do rzeczy:

Skoro nic ci sie nie wyswietla to masz dwie opcje czemu
- albo warunek nie jest spelniony
- albo masz blad zapytania

Po to ci trueblue napisal, bys odpalil to na bazie bezposrednio to bys widzial od razu co jest schrzanione. A skoro nie chcesze tego zrobic na bazie to sprawdz blad bazy w php.
No i nie mieszaj obiektowego mysqli z proceduralnym bo groch z kapusta wychodzi
brzanek
Wykonałem to zapytanie w sql
  1. SELECT SUM(`miesieczna_suma_opadu`) AS `miesieczna_suma_opadu`, `nr_stacji`, `lat_stacji`, `lon_stacji`, `nazwa_stacji`, `miesiac` FROM `stacje_meteo_wspolzedne` LEFT JOIN `stacje_meteo` ON `stacje_meteo_wspolzedne`.`nr_stacji` = `stacje_meteo`.`nr_stacji` LEFT JOIN `opad_2010` ON `stacje_meteo_wspolzedne`.`nr_stacji` = `opad_2010`.`nr_stacji` WHERE `lat_stacji` BETWEEN '14.194074' AND '16.822401' AND `lon_stacji` BETWEEN '52.618755' AND '54.579257'

Ale pojawił się błąd #1052 - Kolumna: 'nr_stacji' w field list jest dwuznaczna
Warunek jest spełniany tylko coś z sumowanie wyników jest nie tak
Takie zapytanie działa
  1. SELECT * FROM `stacje_meteo_wspolzedne` LEFT JOIN `stacje_meteo` ON `stacje_meteo_wspolzedne`.`nr_stacji` = `stacje_meteo`.`nr_stacji` LEFT JOIN `opad_2010` ON `stacje_meteo_wspolzedne`.`nr_stacji` = `opad_2010`.`nr_stacji` WHERE `lat_stacji` BETWEEN '14.194074' AND '16.822401' AND `lon_stacji` BETWEEN '52.618755' AND '54.579257'
trueblue
W Google też pewnie nie próbowałeś poszukać problemu?
https://www.google.com/search?q=mysql+%231052
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2019 Invision Power Services, Inc.