人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

動的にハイスコアランキングを作成するWEBページを作りたいです。
現在webで簡単なゲームを作成しています。
ユーザの得点を送信してもらい、動的にハイスコアランキングを表示させたいと考えています。
よくゲームセンターで最後に出てくる上位10位の得点表示のようなイメージです。

質問の内容はPHPやjqueryでこのような事が実現できる機能があるかご教授下さい。
また、参考になるサイトや書籍があれば併せてご教授頂けると助かります。

お手数おかけいたしますがよろしくお願いいたします。

●質問者: hossiiii
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Cherenkov
●100ポイント

・このURLにpostされたらランキングDBを更新する。
・このURLをgetしにきたらランキング結果を返す。
あたりの骨組みをphpで作ってからjQueryでAjax化するなり見せ方を工夫する流れでしょうか。
CakePHPのようなフレームワークを使うのがおすすめです。パーフェクトPHPはphp入門本として鉄板です。


hossiiiiさんのコメント
早急なご回答ありがとうございます。 phpで実現可能のようですね。 ご教授頂いた書籍も本屋で見て見ます。

2 ● holoholobird
●200ポイント ベストアンサー

PHPだけで可能です。
ちょっと一例を作ってみます。

record_maker.php
例えばhttp://www.test.comにwebゲームがあるとします。
2013年10月5日23時51分にtakashiがゲームで98点を取った時に、
http://www.test.com/record_maker.php?score=98&user=takashiにアクセスすると、
98,takashi,2013/10/5-23:51が
http://www.test.com/record.txtに記録されます。

<?php
$score=$_GET['score'];
$user=$_GET['user'];
$s_date=date( "Y/m/d-H:i", time());

$text=$score.",".$user.",".$s_date.";";
//log.txtにスコアを保存
$fp = fopen("./record.txt", "a");
fwrite($fp, $text);
fclose($fp);
?>

record_echo.php
http://www.test.com/record_echo.phpにアクセスすると、
http://www.test.com/record.txtの情報を基にランキングを表示します。

<?php
// CSV ファイルを読み込み、$data配列に格納
 $handle = fopen("./record.txt", "r");
 while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
 $data[] = array( 'score'=>$row[0] ,'user'=>$row[1], 's_date'=>$row[2], 'place'=>$row[3] );
 
 }
 fclose($handle);

// 列方向の配列を得る
 foreach ($data as $key => $row) {
 $score[$key] = $row['score'];
 $user[$key] = $row['user'];
 $s_date[$key] = $row['s_date'];
 }

// データを スコアの昇順にソートする
 array_multisort($score, SORT_ASC, $user, SORT_DESC, $s_date, SORT_DESC, $place, SORT_DESC, $data);

// 結果を10件表示
 for( $i=0 ; $i<10 ; $i++ ) {
 print "$score[$i] $user[$i] $s_date[$i] <br>\n";
 }
?>

PHPを勉強する場合、初級者であれば、この本1冊あれば絶対に十分です。

PHP 逆引きレシピ (PROGRAMMER'S RECiPE)

PHP 逆引きレシピ (PROGRAMMER'S RECiPE)


hossiiiiさんのコメント
PHPだけで作成可能なのですね。 また、サンプルコードまで記載頂き誠にありがとうございます。 こちらを参考にして実際にチャレンジしてみたいと思います。 お勧めの書籍も本屋で確認してみます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ