Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]SELECT SUM podwojny wynik
Bartek007c2
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.01.2013

Ostrzeżenie: (0%)
-----


Witam
mam taki oto kodzik sumujący liczbę odwiedzin z poszczególnych miesięcy
  1. $f = $main->messagemysql($_SESSION['firma']);
  2. $suma = (int)0;
  3. $i =0;
  4. $sqli= $db->query("SELECT DISTINCT `datam` , `datay` FROM `licznik` WHERE `firma` = '{$f}' ORDER BY `data` DESC LIMIT 12");
  5. while($rowy = $sqli->fetch_assoc()) {
  6. $msc = $rowy['datam'] ;
  7. $year= $rowy['datay'];
  8. $sqli2= $db->query("SELECT DISTINCT SUM(`licznik`) FROM `licznik` WHERE `firma` = '{$f}' AND `datam` = '{$msc}' AND `datay` = '{$year}'LIMIT 1");
  9.  
  10. while($rowy2 = $sqli2 ->fetch_array()) {
  11. $txt = '';
  12. $txt = implode(' ',$rowy2);
  13. $data .= $msc.".".$year."{".$txt."}";
  14. }
  15. }
  16. echo $data;


Niestaty jest jakis problem nianowicie wynik wygląda tak
1.2017{44 44}12.2016{72 72}10.2016{1 1}
wartości z drugiego zapytania tzn sumy są wyswietlane podwójnie. Nie mam juz pomysłów co robię źle
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Niepotrzebne są pola datam oraz datay, rok i miesiąc są zawarte w polu data.

Całość można wykonać jednym zapytaniem:

  1. SELECT DATE_FORMAT(DATA,'%Y-%m') AS rok_miesiac, SUM(licznik)
  2. FROM licznik
  3. WHERE firma='X'
  4. GROUP BY rok_miesiac
  5. ORDER BY rok_miesiac DESC
  6. LIMIT 0,12


Ten post edytował trueblue 14.01.2017, 18:30:18


--------------------
Go to the top of the page
+Quote Post
Bartek007c2
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.01.2013

Ostrzeżenie: (0%)
-----


Oki a co oznacza AS w zapytaniu?
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Jest to alias, czyli zamiennik nazwy.
Przydaje się przy duplikatach nazw jeśli wybieramy z dwóch tabel lub w przypadku funkcji grupujących.
W tym drugim przypadku mając: SUM(licznik) AS suma_wyswietlen, pobierając dane do tabeli asocjacyjnej będziesz mieć je dostępne pod indeksem 'suma_wyswietlen' (np. $rowy['suma_wyswietlen'])


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:09