2013-08-31 2 views
2

데이터베이스에 "점수"를 저장하는 애플리케이션을 구축 중이며 사람들에게 순위를 알려줄 수 있기를 바랍니다.PDO 결과의 MySQL 행 위치

지금 당장 필자는 모든 데이터베이스 행을 가져 와서 점수에 따라 내림차순으로 정렬하는 선택 쿼리를 사용하므로 점수가 가장 낮게 높습니다.

이제 각 사용자에게 개별 순위를 표시 할 수있게되는 것입니다. Jim이 해당 목록에서 33 위를 차지하면 그의 워크 스테이션에서 그의 순위가 33이라는 것을 보여줍니다.

그래서 Jim이 결과 집합에 속하는 행 번호를 어떻게 얻을 수 있습니까? (그들은 고유의 직원 ID의 기준으로 정렬 ...하지만 난 당신이 포인트를 얻을 생각하는) 그는 같은 것을 볼 수 있습니다에서

그래서 짐 기록하는 경우 : 당신은 당신의 순위가 내가 사용하고 33

670 포인트가를 MySQL의 PDO.

설명이 의미가되기를 바랍니다.

+0

쿼리 결과를 반복하면서 각 행을 증가시키는'$ count' 변수를 유지하십시오. 이것은 –

+0

이상의 33 번째 루프에 있기 때문에 계급을 줄 것입니다 [MySQL 사용자 등급 얻기] (http://stackoverflow.com/questions/10363388/get-user-rank-with-mysql) – hjpotter92

답변

0

내 예는 MySQLi로하지만 논리는 PDO에 대해 동일/MySQL을

$ 콘 가정하면 데이터베이스 연결 변수입니다 :

$All_Users = $con->query("SELECT * FROM Users ORDER BY Score DESC"); // Get all users and order by descending order. 

    $rank = 0; 
     while($UserInfo = $All_Users->fetch_object()) { 
      $rank++; 
      echo $UserInfo->Username."has a rank of". $rank; 
     } 

출력은 다음과 같은 형식이됩니다에 우리는 우리의 사용자 테이블에서 단지 2 명의 사용자가이 경우는, 내림차순 id로 정렬 :

밥 3
조의 순위가 2 명의
피트의 순위 AR을 가지고있다 당신은 MySQL의 쿼리 ASC에 DESC를 변경하는 경우 1

의 ANK가 출력 될 것입니다 :

피트 1
조의 순위를 가지고하는 2
피트의 순위를 가지고하는 것은 3

의 순위가