PhP4.2 mysql4.0 に関して


mysqlについて質問です。
昇降順に関する質問です。

登録してあるmysql情報を下記とします。
カラムが名前、点数1とします。

並び替えをして、順位を現したいです。

(test)テーブル
----------------
(名前)(点数1)
a     5    
b     2    
c     4    
d     3    
e     1    
----------------
これを(点数1)で降順にします。
e b d c a
$query="SELECT * FROM test ORDER BY 点数1 DESC";
$result=mysql_query($query);

このような順番にします。
降順なので、aなら「1」dなら「3」となります。

(問)$resultをaなら「1」dなら「3」という風に
並べ替えた後の順番の数字を出すにはどうすればいいですか?

※名前を$name
 数字1を$suji
 として回答お願いします。

詳しい方お願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/10/11 13:51:09
  • 終了:2007/10/18 13:55:04

回答(1件)

id:chuken_kenkou No.1

chuken_kenkou回答回数722ベストアンサー獲得回数542007/10/11 17:31:58

ポイント60pt

phpについては、詳しくないのですが。。。


// テーブル(user_table)の値を取得するquery文
$query = "SELECT * FROM user_table";

上記の$queryに、前の質問で回答した以下のSQLを入れます。

select
  x.名前   as name,
  x.点数1  as suji1,
  count(*) as rownum
 from test as x,test as y
 where x.点数1<y.点数1
    or x.点数1=y.点数1 and x.名前>y.名前
    or x.点数1=y.点数1 and x.名前=y.名前
 group by x.名前,x.点数1
 order by x.点数1 desc,x.名前

phpで値を参照するため、「x.名前」、「x.点数1」、「count(*)」に、それぞれname、suji1、rownumという別名を付けています。

// query文の実行
$result = mysql_query($query) or die(mysql_error());

//user_tableの表示
while($row=mysql_fetch_array($result)) {
    echo "$row['name'], $row['suji1'], $row['rownum']

"; }

$rowから、値を別名で参照します。


phpのコードは、下記から引用しました。

PHP&MySQL

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません