Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql]problem z count
Forum PHP.pl > Forum > Przedszkole
pawel81
Witam.

  1. <?php
  2. $pobrane = mysql_query("SELECT COUNT(u.id_uzytkownika), COUNT(z.id_zamowienia), us.zlecen_dziennie
  3.  FROM uzytkownicy u, zamowienia z, ustawienia us")
  4. or die("Nie można pobrać danych (SI)".mysql_error());
  5. ?>


Powyższe zapytanie zwraca błąd.
Czy można go zmodyfikować w inny sposób niż rozdzielenie na 3 odrębne zapytania, tzn.

  1. <?php
  2. function statystyki() {
  3. $pobrane = mysql_query("SELECT COUNT(id_uzytkownika) FROM uzytkownicy") or die("Nie można pobrać danych (SI)");
  4. $pobrane2 = mysql_query("SELECT COUNT(id_zamowienia) FROM zamowienia") or die("Nie można pobrać danych (SII)");
  5. $pobrane3 = mysql_query("SELECT zlecen_dziennie FROM ustawienia") or die("Nie można pobrać danych (SIII)");
  6.  
  7. $wynik = mysql_fetch_row($pobrane);
  8. $wynik2 = mysql_fetch_row($pobrane2);
  9. $wynik3 = mysql_fetch_array($pobrane3);
  10.  
  11. echo '<br>Użytkowników: ' . (!empty($wynik['0']) ? $wynik['0'] : 0);  
  12.  
  13. echo '<br><br>Zamówień: ' . (!empty($wynik2['0']) ? $wynik2['0'] : 0);
  14.  
  15. echo '<br>Czas realizacji: ' . (@($dni = ceil($wynik2['0']/$wynik3['zlecen_dziennie'])) == 0 ? 0 : $dni)
  16.  . ($dni == 1 ? ' dzień' : ' dni');  
  17. }
  18. ?>
kwiateusz
a mozna wiedziec jaki błąd?
pawel81
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
kwiateusz
wiec wystarczyło sobie to przetłumaczyć i wychodzi że musisz dodać group by jakas_kolumna.
pawel81
dodawałem ale wyniki sie nie zgadzają

powinno być:

Odwiedzin: 5531
Użytkowników: 2

Zamówień: 6
Czas realiacji: 1 dzień

a jest:

Odwiedzin: 5531
Użytkowników: 6

Zamówień: 6
Czas realiacji: 1 dzień

lub

Odwiedzin: 5531
Użytkowników: 12

Zamówień: 12
Czas realiacji: 1 dzień

lub

Odwiedzin: 5531
Użytkowników: 2

Zamówień: 2
Czas realiacji: 1 dzień
Wykrywacz
A próbowałeś tak
  1. SELECT temp.a,temp.b FROM ( SELECT count(dupa) a, max(kurek) b FROM tablica ) temp
  2. WHERE temp.a >1 AND temp.b = coś tam
  3. [b]GROUP BY temp.a, temp.b[/b]
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-2025 Invision Power Services, Inc.