Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Skompilowane zapytania :p
Forum PHP.pl > Forum > Przedszkole
-Aimar-
Witam,
Mam zapytanie jak poniżej:

  1. $refcount = $db->query_first_slave("SELECT COUNT(*) AS count FROM " . TABLE_PREFIX . "user WHERE referrerid = $userinfo[userid]");
  2. $referrals = vb_number_format($refcount['count']);


Pokazujące liczbę $refcount['count'] dla wybranego $userinfo[userid]
Teraz od tego potrzebuję zrobić tak, żeby pokazało mi 5 takich wyników począwszy od tego, który będzie miał nawiększą wartość $refcount['count']

Czyli nie podaję w warunku where user = $userinfo[userid] tylko chcę uzyskać pięciu $userinfo[userid] z największą liczbą $refcount['count']

Da się coś takiego mądrze zrobić? snitch.gif

Pozdr,
Aimar
jacekl
Spróbuj tak:

  1. SELECT referrerid, COUNT(*) AS count FROM users GROUP BY 1 ORDER BY 2 DESC LIMIT 5


JL
-Aimar-
//Niech ktoś usunie powyższy post, zapomniało mi się slasha przy tagu i nieładnie to wyszło tongue.gif

OK, działa :]

Mam takie coś:

  1. <?php
  2. $stat = $vbulletin->db->query("
  3. SELECT `".TABLE_PREFIX."invites`.`user`, COUNT( * ) AS ilosc
  4. FROM `".TABLE_PREFIX."invites`
  5. WHERE accepted != 0
  6. GROUP BY 1
  7. ORDER BY 2 DESC
  8. LIMIT 5;
  9. ");
  10. ?>


Teraz jeszcze tylko pytanie, jak do tego zapytania dołożyć pobieranie nazwy użytkownika (zamiast id (invites`.`user` to id)) - tabela z nazwą użykownika to osobna tabelka ... _user

Próbowałem to zapisać tak:
  1. <?php
  2. $statleech = $vbulletin->db->query("
  3. SELECT `".TABLE_PREFIX."invites`.`user`, COUNT( * ) AS ilosc, `".TABLE_PREFIX."user`.`username`
  4. FROM `".TABLE_PREFIX."invites`, `".TABLE_PREFIX."user`
  5. WHERE `".TABLE_PREFIX."invites`.`accepted` != 0
  6. AND `".TABLE_PREFIX."user`.`username`=`".TABLE_PREFIX."invites`.`user`
  7. GROUP BY 1
  8. ORDER BY 2 DESC
  9. LIMIT 5;
  10. ");
  11. ?>


Ale dostaję błędy o nieistniejącej kolumnie username... tak jakby szukało tej kolumny w _invites zamiast _user
jacekl
Trudno cokolwiek powiedzieć nie znając struktury tych tabelek - może pole nazywa się user_name a nie username?
Rzuca się w oczy inny, prawdopodobny błąd:

AND `".TABLE_PREFIX."user`.`username`=`".TABLE_PREFIX."invites`.`user`

Chyba nie chciałeś przyrównywać nazwy do id (które, jak zgaduję, znajduje się w polu invites.user)?

JL
-Aimar-
Ano wlasnie biggrin.gif wiedzialem ze jakis glupi blad..

Powinienem dac where _user`.`userid` = `_invites`.`user` i z tego wziąć sobie to `_user`.`username` :]

tongue.gif

Dzięki za pomoc :-)
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.