Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] ile pobrac rekordow aby otrzymac x wierszy z uzyciem GROUP BY
netvalue
post
Post #1





Grupa: Zarejestrowani
Postów: 199
Pomógł: 2
Dołączył: 9.06.2008

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


Witam,

mam wartosc $x=10; ktora odpowiada za limit wyswietlnych wierszow.
Teraz ukladam zapytanie SQL:

  1. SELECT wartosc, stawka FROM tabela LIMIT $x


otrzymuje:

10, 2
15, 2
10, 2
15, 2
10, 2
15, 3
10, 3
15, 3
10, 3
15, 3

pobiera mi 10 rekordow z bazy (wszystkich jest ponad 1000) i ok
tylko teraz w php przerabiam troche pobrane dane pole "wartosc" i grupuje je po polu "stawka" (cos jak mysql GROUP BY)
dodaje + 2 do kazdego pola wartosc. czyli


12, 2
17, 2
12, 2
17, 2
12, 2
17, 7
12, 8
17, 9
12, 1
17, 4




nastepnie wyswietlam i okazuje sie ze np. zostaje wyswietlonych 5 wierszy bo pozostale 5 miala identyczna wartosc i zostalo pogrupowane...


70,2
17, 7
12, 8
17, 9
12, 1
17, 4




wszystko jest jak nalezy ale.... potrzebuje miec zawsze nawet na koncu po moich przerobkach bylo 10 wierszy...

czyli musze zadac pytanie do MYSQL ile trzeba pobrac wszystkich wierszy zeby bylo ich na koniec 10 nawet po GROUP BY

Ten post edytował netvalue 9.09.2013, 15:18:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Myślałem, myślałem i w końcu udało mi się zrozumieć co chcesz osiągnąć.

Pobierasz dane z MySQL zwykłym zapytaniem, a później robisz "grupowanie" tych danych w PHP i chcesz wiedzieć ile masz pobrać rekordów, żeby otrzymać w PHP 10 grup. Dobrze zrozumiałem?

Moje pytanie brzmi - czemu nie zrobisz grupowania w MySQL, tylko mielisz te dane po stronie PHP? Bo jeśli będziesz chciał to zrobić Twoim sposobem, to tak czy siak nie obędzie się bez kolejnego zapytania, które będzie grupowało. I skończy się na tym, że będziesz robił dwa zapytania do bazy tylko po to, żeby w PHP zrobić dokładnie to samo, co robiło pierwsze zapytanie thumbsdownsmileyanim.gif
Go to the top of the page
+Quote Post
netvalue
post
Post #3





Grupa: Zarejestrowani
Postów: 199
Pomógł: 2
Dołączył: 9.06.2008

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


sowiq: tak zgadza sie smile.gif

robie grupowanie w php poniewaz dosc zaawansowane operacje matematyczne przeprowadzam na polu wartosc... to co napisalem w postach
wyzej ze dodaj +2 to tylko dla przykładu...
Go to the top of the page
+Quote Post
sowiq
post
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


  1. SELECT COUNT(*) AS count, stawka
  2. FROM tabela
  3. GROUP BY stawka
  4. LIMIT 10


Otrzymasz kilka (max 10) wyników, a w kolumnie "count" liczbę zgrupowanych rekordów. Jak zsumujesz kolumnę "count" to dostaniesz swój limit.

Ale dalej upieram się, że robisz od tyłka strony nerdsmiley.png
Go to the top of the page
+Quote Post
netvalue
post
Post #5





Grupa: Zarejestrowani
Postów: 199
Pomógł: 2
Dołączył: 9.06.2008

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


narazie dalem tak ... i otrzymuje ile musze pobrac wierszy aby bylo dobrze...

  1. SELECT SUM( count )
  2. FROM (
  3. SELECT COUNT( id ) AS count
  4. FROM tabela
  5. GROUP BY stawka
  6. LIMIT 10
  7. ) AS A
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: 21.08.2025 - 15:59