Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Zapytanie problem
Forum PHP.pl > Forum > Przedszkole
xavierek
Witam.
moja baza wygląda następująco:

user_id | date |level

chciał był wyświetlić 100 osob ktore maja najwiekszy level lecz mam problem
  1. $sql = mysql_query ( "SELECT DISTINCT (
  2. user_id
  3. ), level
  4. FROM player_level_history
  5. ORDER BY level $sortorder
  6. LIMIT $from , $to" )

  1. $sql = mysql_query ( "SELECT DISTINCT (
  2. user_id
  3. )
  4. FROM player_level_history
  5. ORDER BY level $sortorder
  6. LIMIT $from , $to" )


po czym pobierałem drugim zapytaniem level i kolejność leveli się nie zgadzała w drugim przykładzie wszystko było by ok tylko ze ide usera się powtarza w wynikach zęby było ciekawiej w phpmyadmin wszystko dobrze się wyświetla metoda druga, lecz w php już nie
Rid
Nie wiem co ta zmienna $sortorder tam robi ,ale wyświetlanie najwiekszego rekordu można uzyskać poprzez Max,można także dodać desc,żeby sortowało w porządku malejącym.
  1. $sql = mysql_query ( "SELECT DISTINCT (
  2. user_id
  3. FROM player_level_history
  4. ORDER BY MAX (level)desc $sortorder
  5. LIMIT $from , $to" )


Pisane z ręki nie wiem czy składnia dobra
xavierek
$sort order to ASC lub DESC

i jest taki problem jeszcze że level może spadać i rosnąć wiec max w tym wypadku odpada potrzebował bym coś w rodzaju select level where max date i dopiero usunąć powtórki
Rid
Poprawiłem trochę poprzedni przykład:
  1. "SELECT DISTINCT(user_id), MAX(level) FROM player_level_history GROUP BY user_id
  2.  
  3. ORDER BY MAX(level)$sortorder LIMIT $from , $to"

Cytat
jest taki problem jeszcze że level może spadać i rosnąć wiec max w tym wypadku odpada


Nie wiem ,w czym problem ,przecież przy każdej zmianie w bazie select będzie zwracał inne wyniki.
xavierek
niestety jezeli user stracil level to i tak uklada wedlug jego najwiekszego w całęk histori levela a nie wedlug aktualnego levela
Rid
Cytat
niestety jezeli user stracil level to i tak uklada wedlug jego najwiekszego w całęk histori levela a nie wedlug aktualnego levela

Nie rozumiem jezeli user stracił lvl,to zrobić update do bazy i po sprawie,potem ten w/w select sprawdza którzy userzy mają najwyższe lvl i sortują
xavierek
ta baza zawiera cala historie leveli do wykresow

ok robie update do osobnej bazy bo jak wejdzie mi 10k osob na strone to mysql umrze przy takim czyms
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.