我的情況: 我有一個包含玩家數據的表(「玩家」)。它包含字段:姓名,lv分,itf分和總分(自動生成,lv分+ itf分)和性別。同一張表包含關於男性和女性的數據。PHP MySQL從臨時列中獲取數據
我想要做的是創建一個列或選擇將基於總分的臨時列「排名」。
例子:
| rank (temp_col) | name | totalpoints
| 1 | Nick | 199
| 2 | Rob | 190
| 3 | Alex | 155
| 4 | Max | 144
然後我想要得到一個特定名稱的數據,如
SELECT rank FROM players WHERE name = 'Nick
「
我有單獨的頁面每個球員,我想展示排名爲每個人。
我的PHP代碼:
<?php
$sql = "SELECT *, (lvpoints + itfpoints) AS totalpoints FROM players WHERE club = 'TENNISJOY' ORDER BY gender DESC, totalpoints DESC";
$result = mysqli_query($conn, $sql);
$i = 0;
while($row = mysqli_fetch_assoc($result)){
$i += 1;
$name = $row['name'];
$surname = $row['surname'];
$gender = $row['gender'];
$sql2 = "SELECT *, (lvpoints + itfpoints) AS totalpoints FROM players WHERE gender = '$gender' AND name='$name' AND surname='$surname' ORDER BY totalpoints DESC";
$result2 = mysqli_query($conn, $sql2);
$row2 = mysqli_fetch_assoc($result2);
$points = $row2['totalpoints'];
$sql3 = "SELECT
(@cnt := @cnt + 1) AS rank,
surname, name, (lvpoints + itfpoints) AS totalpoints, lvpoints, itfpoints, club
FROM players
JOIN (SELECT @cnt := 0) AS dummy
WHERE gender='$gender'";
$result3 = mysqli_query($conn, $sql3);
$row3 = mysqli_fetch_assoc($result3);
$rank = $row3['rank'];
echo '
<div class="row">
<div class="col-md-4">
<div class="well dash-box">
<h4> <a href="#">' . $i . '. ' . $surname . ' ' . $name. '</a> ('. $gender . ') '. '</h4>
<img src="img/noava.png" height="200px" width="200px" />
</div>
</a>
</div>
<div class="col-md-8">
<div class="well dash-box">
<h4 align="left">Player details</h4>
<p align="left">LV Rank : ' . $rank . '<br/><br/>
Total points : ' . $points .'<br/>
LV points : ' . $row['lvpoints'] . '<br/>
<br/>
ITF Rank : <br/>
ITF Points : ' . $row['itfpoints'] . '<br/>
</p>
</div>
</a>
</div>
</div>
';
}
?>
如果你有任何想法如何實現它,給留言,拜託了!
Rank只是一個遞增的數字,它基於查詢的結果集,所以如果選擇一個名稱,則只能得到1個數字。換句話說,它不是持久的。 – ArtisticPhoenix