Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie według liczby rekordów w drugiej tabeli
teez
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 6
Dołączył: 20.12.2010

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


Witam,

Mam dwie bazy,

sieci:

-nazwasieci,
-idsieci,
-wlasciciel,

grupy

-id
-idsieci
-nazwaczlonka ( session login )

Teraz mam sortowanie wynikow z samej tabeli sieci

ID nazwa wlasciciel
1 banan ktos

Chcę dodać do tego jeszcze ilośc członków pobieranych z drugiej tabeli ORAZ ABY SORTOWAŁO zaczynając od sieci z największą ilością członków

ID nazwa wlasciciel liczbaczlonkow
2 banan ktos 10
1 gruszka ktos2 6


Używam stronnicowania..

  1. $SQL = "SELECT *
  2.  
  3. FROM sieci
  4. ORDER BY id ASC
  5. LIMIT ".mysql_escape_string((int)$_GET['page']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
timon27
post
Post #2





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

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


JOIN

Chyba że czegoś nie rozumiem.
Go to the top of the page
+Quote Post
teez
post
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 6
Dołączył: 20.12.2010

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


Tak ale..

Co zrobić, aby podliczył wyniki np ( bananowi 3 razem, ogórkowi 2 itd [..] ) i według tego posortował?
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


  1. SELECT `s`.*, COUNT(`g`.`id`) `liczbaczlonkow` FROM `sieci` `s` LEFT JOIN `grupy` `g` ON `s`.`id` = `g`.`idsieci` GROUP BY `g`.`idsieci` ORDER BY `liczbaczlonkow` DESC LIMIT ...


Choć jeśli tych sieci i grup jest dużo, to lepiej sobie utworzyć dodatkową kolumnę w tabeli sieci i w niej przechowywać liczbę członków. Na pierwszy rzut oka tabela grupy jest źle zorganizowana, chociaż może się po prostu niewłaściwie nazywać.
Go to the top of the page
+Quote Post
teez
post
Post #5





Grupa: Zarejestrowani
Postów: 186
Pomógł: 6
Dołączył: 20.12.2010

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


Cytat(mortus @ 19.01.2013, 10:13:09 ) *
  1. SELECT `s`.*, COUNT(`g`.`id`) `liczbaczlonkow` FROM `sieci` `s` LEFT JOIN `grupy` `g` ON `s`.`id` = `g`.`idsieci` GROUP BY `g`.`idsieci` ORDER BY `liczbaczlonkow` DESC LIMIT ...


Choć jeśli tych sieci i grup jest dużo, to lepiej sobie utworzyć dodatkową kolumnę w tabeli sieci i w niej przechowywać liczbę członków. Na pierwszy rzut oka tabela grupy jest źle zorganizowana, chociaż może się po prostu niewłaściwie nazywać.



Myślę nad tą dodatkową kolumną, a następnie wysłanie rezultatów z niej, ale..

Jak zrobić aby w tabeli było pare "podtabel"? Mam w tabeli rekord z jedną siecią, a w niej kolumnę jeszcze "liczbagraczy" i jak bedzie wyglądało zapytanie, aby każdy kto dołączał, byl w niej zapisywany? Coś typu UPDATE $aktualnaliczba++?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 00:20