投稿者 メッセージ
<  PHPプログラミング  ~  スコアの高い順番に変数をソートしたいのですが、ご教授下さい
joy
投稿1時間: 土 6月 07, 2008 5:39 am  引用



登録日: 2008年6月 07日
投稿記事: 7
所在地: 埼玉県

皆さん、
今日は。
Flash経験者ですが、PHPは、初心者です。
Flashのゲームで、PlayしたPlayerがスコアをPHPに送信し、そのスコアを点数の大きい順番に、PHP側で、ソーティングし、上から5番目までのスコアを、Flashに返すことを考えています。Flash側のscriptingは、今回の質問の範囲外となりますが、PHP側では、どのような処理を行えば宜しいのでしょうか?
一旦、Flashを忘れ、PHPのみで、以下のように記載しました。
1)score記載と表示用のphp(ファイル名:score_input.php)
Code:
<html>
<head>
<title>スコアブック</title>
</head>

<body bgcolor="#ffffff">

<h1 style="background:#cccccc">
   スコア書き込み
</h1>
<form method="POST" action="score_write.php">

   お名前:<br>
   <input type="text" name="name" size="20" maxlength="30"/><br/>
   スコア:<br>
   <input type="text" name="score" size="20" maxlength="255"/><br/>
   <input type="submit" value="送信"/>

</form>
<br>
<h1 style="background:#cccccc">スコア表示</h1>
<?php

   $file=fopen("guest.dat","r");//rは、読み込みのみで、guest.datを開く
   while($row=fgetcsv($file,1024,"\t")){//tab区切りで、$fileを、最大文字長 1024文字を読み込む。
//この辺りに、スコアの$row[1]を数値の大きい順番に、配列しなおすスクリプトが必要だと思うのですが、どう記述したらよいのかが分かりません。
?>
   <ol>
      <li>お名前:<?php print($row[0]); ?></li>
      <li>スコア:<?php print($row[1]); ?></li>
                   
   </ol>
   <hr/>
<?php
}
fclose($file);
?>
</body>
</html> 


2)スコアwrite用のPHP(ファイル名:score_write.php)

Code:
<?php
   $file=fopen("guest.dat","a");//aは、追記型の書き込みのみで、guest.datを開く
   flock($file,LOCK_EX);
   $line.=$_POST['name']."\t";//.は文字列連結の意味、Flashの・#123;に相当する
   $line.=$_POST['score']."\t";
   fputs($file,$line."\n");//開いた、guest.dataに、変数の$lineを記載し、改行する
   flock($file,LOCK_UN);//ロックの解除
   fclose($file);//ファイルを閉じる
   header("Location: score_input.php");//score_inpu.phpにリダイレクトする

?>


このコードで記載した、phpを以下にアップして置きますが、スコア表示の方法を、スコアの高い順番に、上から5つだけ表示させたいという質問ですが、お分かりになる方、ご教授いただけると助かります。
(尚、お名前を、漢字でインプットすると、ローカルでは、OKでしたが、このLacoocanですと、何も表示されないようですが、今回、これは無視して頂いて、結構です。
更に、ブラウザーで、お名前をインプット後、文字コードが、Shift_JISに変更されることがありますがので、文字コードを、EUCにして、リロードお願いします。)

http://joy.life.coocan.jp/questions/score_php/score_input.php

長くなりましたが、宜しく、お願いいたします。


joyが土 6月 07, 2008 11:48 amに記事を編集, 編集回数: 1
トップに移動
ユーザー情報を表示 メッセージを送信 メールを送信
explode
投稿1時間: 月 6月 09, 2008 7:31 pm  引用



登録日: 2008年6月 09日
投稿記事: 2
所在地: Tokyo

どうも。
表示部分のみですが。


[code:1:95875c3a4f]//rは、読み込みのみで、guest.datを開く
$file=fopen("guest.dat","r");
while($row=fgetcsv($file,1024,"\t")){
// スコアをキ
トップに移動
ユーザー情報を表示 メッセージを送信
joy
投稿1時間: 火 6月 10, 2008 11:38 pm  引用



登録日: 2008年6月 07日
投稿記事: 7
所在地: 埼玉県

explodeさん、
今晩は。
早速のご教授、ありがとうござます!
上位5者を、以下のように、綺麗に表示することができました!
http://joy.life.coocan.jp/questions/score_php/score_input.php

Flashとの組み合わせは、私の仕事になりますが、肝心のサーバーサイドのPHPが出来たのも、explodeさんのおかげです。重ね重ね、お礼申し上げます。
トップに移動
ユーザー情報を表示 メッセージを送信 メールを送信
explode
投稿1時間: 木 6月 12, 2008 10:58 am  引用



登録日: 2008年6月 09日
投稿記事: 2
所在地: Tokyo

ご希望に添うことができ、
光栄に思います。

Flashとの結合、がんばってくださいね!
トップに移動
ユーザー情報を表示 メッセージを送信
takiyuanha
投稿1時間: 火 3月 12, 2013 4:39 am  引用



登録日: 2013年3月 11日
投稿記事: 16
所在地: Dominica

where can i purchase crysis 3 cd secrets less than EA retailer?
トップに移動
ユーザー情報を表示 メッセージを送信 メールを送信
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.