Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Sortowanie wyników
Forum PHP.pl > Forum > Przedszkole
d.stp
Mam 2 tabele:

uzytkownicy
id | data_rejestracji | login | haslo | x

tabela2
id | id_usera | polubienia

I wyświetlam wszystkich użytkowników sobie:

  1. $get_users = 'SELECT * FROM uzytkownicy ORDER BY id DESC';
  2.  
  3. while ($user = mysql_fetch_assoc($get_users)) {
  4.  
  5. // Pobieram ilosc polubien kazdego usera
  6. $polubienia = mysql_fetch_assoc(mysql_query("SELECT SUM(`polubienia`) AS `ilosc_polubien` FROM `tabela2` WHERE `id_usera` = '".$user['id']."'"));
  7.  
  8. echo 'ID: '.$user['id'].' | Polubienia: '.$polubienia['ilosc_polubien'].'<br />';
  9.  
  10. }


I to ładnie mi działa. Teraz chciałbym wprowadzić możliwość sortowania rosnąco/malejąco na kolumnę polubienia ale nie mam pojęcia jak. Wiem że trzeba użyć ORDER BY ale nie wiem co dalej.

Chyba będzie coś z join? słaby jestem w zapytaniach :/
Spawnm
Połącz zapytania w jedno wink.gif
d.stp
No właśnie coś mi nie idzie to łączenie biggrin.gif

  1. SELECT * FROM uzytkownicy LEFT JOIN tabela2 ORDER BY SUM(tabela2.polubienia) AS `suma_polubien` WHERE uzytkownicy.id = tabela2.id_usera


takie cuda biggrin.gif
Turson
  1. SELECT SUM(polubienia) AS ilosc_polubien FROM tabela2 JOIN uzytkownicy ON uzytkownicy.id = tabela2.id_usera
in5ane
  1. SELECT u.*, SUM(polubienia) AS ilosc_polubien
  2. FROM uzytkownicy u
  3. LEFT JOIN tabela2 t2 ON t2.id_usera = u.id
  4. ORDER BY ilosc_polubien DESC
Zapytanie pobierze Ci wszystkich użytkowników wraz z ich ilością polubień. Dane będziesz miał posortowane ilościu polubień od największego.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.