0

ユーザーで構成される mysql データベースがあります。そのデータベースには、「スコア」列があります。ユーザーのプロファイルを作成したいのですが、ランクが表示されます。私はこれをサーバーサイドでやりたくないので、プロフィールページ自体からやろうとしています。これは私の現在のコードです:

$sql3 = mysql_query("SELECT * FROM members ORDER BY score DESC") or die("Could not allocate information!");
$rank = 0;
while(mysql_fetch_assoc($sql3)){
  $rank++;
}
echo "<b>Rank: </b>#$rank<br/>";

私も試しました:

$sql3 = mysql_query("SELECT * FROM members ORDER BY score DESC") or die("Could not allocate information!");
$rank = 0;
while(mysql_fetch_assoc($sql3)){
  $rank++;
  echo "<b>Rank: </b>#$rank<br/>";
}

いずれにせよ、すべてのユーザーは同じランクの 2 位です。これを行う方法はありますか?さらに情報が必要な場合は、コメントしてください。ありがとう。

4

5 に答える 5

0

<ol>[番号付きリスト] タグを使用するだけです。

<ol>
<?php while($user = mysql_fetch_assoc($sql3)): ?>

    <li><?php echo $user['name']; ?></li>

<?php endwhile; ?>
</ol>

ユーザーのいくつかのプロパティを表示したいと思っていると思います[たとえばname、テーブルでそれを呼び出すもの]、そうでなければ、数字のリストを表示することはあまり意味がありません。

いずれにせよmysql_*、関数は非推奨です。PDOまたはに移動してくださいmysqli

于 2013-03-30T20:34:59.580 に答える
0

次のようなことを試してください:

$sql3 = mysql_query("SELECT * FROM members ORDER BY score DESC") or die("Could not allocate information!");
$rank = 0;
while($row = mysql_fetch_assoc($sql3)) {
     $rank++;
     if ($row['user_id'] == $current_pages_user_id){
           echo "<b>Rank: </b>#$rank<br/>";
     }
}
于 2013-03-30T20:35:25.630 に答える
0

試す

while($user = mysql_fetch_assoc($sql3)) {    
  $rank++;    
  echo "<b>#$rank. $user['name'] Score: </b> $user['score']<br />";    
}

しかし、hjpotter92 が指摘したように、mysqli または pdo の使用を検討してください。

于 2013-03-30T20:35:54.897 に答える
0

あなたが本当にやろうとしていることは、このようなことだと思います。

$result = mysql_query("SELECT member_name, score,
       (SELECT COUNT(*)
        FROM members ORDER BY score DESC) AS rank
FROM members
WHERE member_id = 5
LIMIT 1") or die("Could not allocate information!");

$member = mysql_fetch_assoc($result);

echo "<b>#$member['rank']. $member['name']</b> Score:  $member['score']<br />";

他の人が前に述べたように、mysqli と pdo をチェックしてください。

于 2013-03-30T21:11:01.187 に答える
0

やってみました:

$sql3 = mysql_query("SELECT * FROM members ORDER BY score DESC") or die("Could not allocate information!");
$rank = 0;
while(mysql_fetch_assoc($sql3)){
    $rank++;
    echo "<b>Rank: </b>#$rank<br/>";
}
于 2013-03-30T20:30:38.770 に答える