php / mysql: 10 лучших результатов среди участников - PullRequest
0 голосов
/ 23 апреля 2020

Я делаю табло из таблицы, в которой сведения об участниках хранятся в одной таблице, а оценки - в другой с внешними ключами участников. Я знаю, что могу показать таблицу лидеров с:

$lbquery = mysql_query("SELECT mid, SUM( score ) AS count FROM `memberscores` GROUP BY mid ORDER BY count DESC");
$lbrow = mysql_fetch_array($lbquery);

$memid = $lbrow["mid"];
$memscore = $lbrow["count"];

    $memquery = mysql_query("SELECT firstname, lastname FROM `members` WHERE `mid`=".$memid);
    $memrow = mysql_fetch_array($memquery);
    $fname = $memrow["firstname"];
    $lname = $memrow["lastname"];

echo $lname." ".$fname." = "$memscore;

Но я не совсем понимаю, как будет отображаться первая десятка, поскольку кажется, что мне придется использовать al oop, чтобы показать первую десятку в таблице. , но не уверен, как это будет использоваться.

1 Ответ

1 голос
/ 23 апреля 2020

Я думаю, что вам нужно простое объединение:

SELECT m.mid, m.firstname, m.lastname, SUM(s.score) cnt 
FROM memberscores s 
INNER JOIN members m ON m.mid = s.mid
GROUP BY m.mid, m.firstname, m.lastname 
ORDER BY cnt DESC
LIMIT 10

Это генерирует набор результатов для 10 лучших пользователей по общему количеству баллов, который включает имя и фамилию каждого пользователя. Затем вы можете извлекать наборы результатов построчно и отображать результаты в вашем приложении.

...