私の状況: 私はプレーヤーに関するデータを含むテーブル( 'players')を持っています。フィールドには名前、姓、lvポイント、itfポイント、合計ポイント(自動生成、lvポイント+ itfpoint)、性別があります。同じテーブルには、男性と女性に関するデータが含まれています。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つの名前を選択すると1つの数値しか得られません。つまり、永続的ではありません。 – ArtisticPhoenix