![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (10%) ![]() ![]() |
Mam takie zapytanie:
Jak policzyć ogólną liczbę rekordów, które ono zwraca bo mam z tym problem. Próbowałem np tak:
Ale zwraca mi to całkiem inna liczbę rekordów niż zwraca mi pierwsze zapytanie (usuwając oczywiście desc LIMIT ... ) Jak to inaczej zliczyć ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Nie lepiej użyć DISTINCT skoro i tak nic nie zliczamy? Drążąc temat dalej to jeżeli mamy fetchować i zliczać xx wyników (gdzie pewnie i tak każdy result zawiera w sobie pole o wartości 1 bo wątpię żeby tytuł książki się powtarzał), to mija się z celem używanie tego count... Już lepiej by było wykonać identyczne zapytanie do tego pierwszego tylko nie pobierać tytułu książki (bo nie potrzebny) i użyć mysql_num_rows(); W skrócie albo wymyślisz zapytanie które to zliczy wszystko razem (nie mam pomysłu jak to zliczyć tak żeby zwróciło w 1 ładnym wyniku) albo nie paćkać się i użyć zwykłego mysql_num_rows(). EDIT: z resztą takie zliczanie pętlą pewnie zwróciło by więcej niż to pierwsze zapytanie bo zliczyło by wszystkie rekordy nawet te powtarzające się. Przykład: Kod ID : tytul 1: A 2: A 3: B 4: C $q = 'SELECT id,tytul FROM ksiazki GROUP BY tytul'; $r = $q -> fetch_row(); // $r= array(array(1,A), array(3,B), array(4,C)); // $r -> num_rows = 3 $q = 'SELECT count(*) FROM ksiazki GROUP BY tytul'; $r = $q -> fetch_row(); // $r = array(array(2),array(1),array(1)); // gdybyśmy zsumowali to pętlą to wyszło by 4 a nie 3. O ile mi się nic nie poje*** to się wszystko zgadza (IMG:style_emoticons/default/tongue.gif) ps. wybaczcie tą wyimaginowaną obsługę sterownika bazy danych (IMG:style_emoticons/default/smile.gif) Ten post edytował bmL 22.10.2010, 19:14:24 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 06:06 |