Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] problem z poprawnym zliczaniem rekordow w widoku (count/group by), zapytanie "normalne" dziala a w widoku bzdury pokazuje
gemini2201
post 16.07.2009, 01:40:31
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.02.2009

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


Witam

Jest zapytanie ktore dziala calkiem ladnie - ma pokazywac ilosc postow uzytkownika z podzialem na typy (zaakceptowane, odrzucone, poprawione, etc) . Zapytanie samo w sobie dziala OK. Jednakze po utworzeniu widoku z tego zapytania zamiast liczby postow dla kazdego uzytkownika pokazuje w rekordzie sumaryczna ilosc postow dla wszystkich uzytkownikow (tak jakby warunek z uzytkownikiem nie byl brany pod uwage..
  1. SELECT `sf_guard_user_id` AS uid,
  2. sf_guard_user.username AS username,
  3. (SELECT count(id) FROM manual_post WHERE `sf_guard_user_id`=uid ) AS total,
  4. (SELECT count(id) FROM manual_post WHERE `sf_guard_user_id`=uid AND STATUS=0 ) AS new,
  5. (SELECT count(id) FROM manual_post WHERE `sf_guard_user_id`=uid AND STATUS=1 ) AS accepted,
  6. FROM manual_post,sf_guard_user WHERE manual_post.sf_guard_user_id=sf_guard_user.id
  7. GROUP BY uid

Zapytanie daje wynik:
Kod
uid, username, total, new, accepted
1,   admin,        4,     0,       4
2,   admin2,      2,      0,       1
3,   writer_test, 5,      4,       0


a w widoku natomiast

Kod
uid, username, total, new, accepted
1,   admin,        11,     4,       5
2,   admin2,      11,      4,       5
3,   writer_test, 11,      4,       5

czyli z jakiegos powodu sumuje posty/rekordy dla wszystkich uzytkownikow


Czy to jakis bug, czy to ja czegos nie rozumiem? Z widokami szczerze mowiac zbyt czesto nie mam do czynienia... a nie moge dopatrzyc sie bledu, no i na 2ch serverach dziala tak samo.

Ten post edytował erix 16.07.2009, 10:25:32
Powód edycji: [erix] przeniosłem
Go to the top of the page
+Quote Post
thomas2411
post 16.07.2009, 13:46:35
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 7
Dołączył: 15.05.2005
Skąd: Rzeszów

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


Ale na podstawie tego co napisałeś nic nie wywnioskujemy. Wklej kod tego, jak wyświetlasz dane.
Go to the top of the page
+Quote Post
gemini2201
post 16.07.2009, 17:23:40
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.02.2009

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


Owszem w ramach symfony to jest (a raczej bedzie), ale problem dotyczy mysql'a na 100%, a nie jest w zaden sposob zalezny od symfony (dlatego umiescilem to w forum o mysql).

Kodu do wyswietlania danych poki co w ogole nie ma... smile.gif (ale docelowo to ma trafic do admin generatora - po to chce widok zrobic smile.gif...
Zapytania poki co wykonuje z poziomu phpmyadmina, wiec symfony nie ma nic do tego.

Zapytanie normalne jakie wykonuje to (tak jak powyzej):
  1. SELECT `sf_guard_user_id` AS uid,
  2. sf_guard_user.username AS username,
  3. (SELECT count(id) FROM manual_post WHERE `sf_guard_user_id`=uid ) AS total,
  4. (SELECT count(id) FROM manual_post WHERE `sf_guard_user_id`=uid AND STATUS=0 ) AS new,
  5. (SELECT count(id) FROM manual_post WHERE `sf_guard_user_id`=uid AND STATUS=1 ) AS accepted,
  6. FROM manual_post,sf_guard_user WHERE manual_post.sf_guard_user_id=sf_guard_user.id
  7. GROUP BY uid

dziala zgodnie z zalozeniami

a w utworzonym widoku na podstawie tego zapytania daje po prostu
  1. SELECT * FROM widok

daje w efekcie bzdury
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: 22.06.2025 - 14:15