Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [sql]problem z count
pawel81
post 11.06.2007, 21:24:17
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 28.04.2007

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


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. ?>


Ten post edytował pawel81 11.06.2007, 21:47:43
Go to the top of the page
+Quote Post
kwiateusz
post 11.06.2007, 21:47:35
Post #2


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




a mozna wiedziec jaki błąd?
Go to the top of the page
+Quote Post
pawel81
post 11.06.2007, 21:49:21
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 28.04.2007

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


Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
Go to the top of the page
+Quote Post
kwiateusz
post 11.06.2007, 21:53:24
Post #4


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




wiec wystarczyło sobie to przetłumaczyć i wychodzi że musisz dodać group by jakas_kolumna.
Go to the top of the page
+Quote Post
pawel81
post 11.06.2007, 21:58:11
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 28.04.2007

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


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ń

Ten post edytował pawel81 11.06.2007, 22:03:37
Go to the top of the page
+Quote Post
Wykrywacz
post 11.06.2007, 22:06:33
Post #6





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


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]
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 Wersja Lo-Fi Aktualny czas: 20.06.2025 - 19:00