2016-09-24 3 views
0

에 순위를 추가 아래 MySQL의 데이터로 테이블을 반환하지만 내가 출력에서 ​​누락하는 열의 데이터를 기반으로 순위에 생성 된 컬럼입니다 코드 (이 예에서는 윌크스) . 비슷한 질문에 대한 예와 답변을 찾았지만 제대로 작동하지 않습니다.내 MySQL의 출력 데이터

요약하면 : Wilks 열의 데이터를 기반으로 1에서 시작하는 순위가 표시되는 ID 열 옆에 추가 열이 필요합니다.

정말 고마워요!

<?php 
$con=mysqli_connect("localhost", "user", "password", "dbname"); 
// Check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT * FROM `Mannen` ORDER BY `Wilks` DESC"); 

echo "<table border='1'> 
<tr> 
<th>#</th> 
<th>Naam</th> 
<th>Lichaamsgewicht</th> 
<th>Vereniging</th> 
<th>Squat</th> 
<th>Bench</th> 
<th>Deadlift</th> 
<th>Totaal</th> 
<th>Wilks</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) 
{ 
    echo "<tr>"; 
    echo "<td>" . $row['ID'] . "</td>"; 
    echo "<td>" . $row['Naam'] . "</td>"; 
    echo "<td>" . $row['Lichaamsgewicht'] . "</td>"; 
    echo "<td>" . $row['Vereniging'] . "</td>"; 
    echo "<td>" . $row['Squat'] . "</td>"; 
    echo "<td>" . $row['Bench'] . "</td>"; 
    echo "<td>" . $row['Deadlift'] . "</td>"; 
    echo "<td>" . $row['Totaal'] . "</td>"; 
    echo "<td>" . $row['Wilks'] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 

mysqli_close($con); 
?> 
+0

당신이 요구하는 어떤 정말 명확하지 않다. 테이블에 새로운 열, 즉'rank'를 추가 하시겠습니까, 아니면 현재 존재하는'wilks' 열에 순위를 두길 원하십니까? – RiggsFolly

+0

질문을 편집하고 샘플 데이터와 원하는 결과를 제공하십시오. –

+0

@RiggsFolly 네, 맞습니다. 불명확 한 것에 대해 사과드립니다. 나는 데이터베이스에 10 명 무작위로 선수를 가지고 있고 나는 그들의 윌크스 점수에 의해 주문 웹 페이지에서 테이블의 모든 데이터를 출력하고 있습니다. 내가 필요한 것은 그 테이블에서 생성되는 여분의 컬럼이며, 그 테이블의 위치에 따라 순위를 추가합니다. ID가 5 인 선수는 400 점이고 ID가 1 인 선수는 300 점입니다. 400 점의 선수는 점수에 따라 먼저 표시되고 순위 1 (열에 표시됨)이 필요합니다. – Mirza

답변

0

먼저 열거 형 값을 원하면 PHP를 사용하면됩니다.

하지만,이 변수를 사용하여, MySQL은 충분히 간단하다

SELECT m.*, (@rn := @rn + 1) as rank 
FROM Mannen m CROSS JOIN 
    (SELECT @rn := 0) params 
ORDER BY Lichaamsgewicht DESC; 

기술적으로는,이 row_number()보다는 rank()의 관련 기능을 구현합니다. 귀하의 질문은 "계급"이 의미하는 바에 대해 명확하지 않습니다.