| 投稿者 | 
    メッセージ | 
  
  
    | 
		 | 
	
  
    | <  PHPプログラミング  ~  スコアの高い順番に変数をソートしたいのですが、ご教授下さい | 
  
  
  
     | 
    
        
           時間:
            土 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 |  
 
 |  
  | 
  
  
     | 
     | 
  
  
      | 
  
  
     | 
    
        
           時間:
            月 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")){
 
	// スコアをキ |  
 |  
 
 |  
  | 
  
  
     | 
     | 
  
  
      | 
  
  
     | 
    
        
           時間:
            火 6月 10, 2008 11:38 pm 
            
             | 
            
              | 
         
        | 
  
  
    
       
       
       
      登録日: 2008年6月 07日 
      投稿記事: 7 
      所在地: 埼玉県
  | 
  | 
 | 
  
  
     | 
     | 
  
  
      | 
  
  
     | 
    
        
           時間:
            木 6月 12, 2008 10:58 am 
            
             | 
            
              | 
         
        | 
  
  
    
       
       
       
      登録日: 2008年6月 09日 
      投稿記事: 2 
      所在地: Tokyo
  | 
  | 
ご希望に添うことができ、
 
光栄に思います。
 
 
Flashとの結合、がんばってくださいね! |  
 |  
 
 |  
  | 
  
  
     | 
     | 
  
  
      | 
  
  
     | 
    
        
           時間:
            火 3月 12, 2013 4:39 am 
            
             | 
            
              | 
         
        | 
  
  
    
       
       
       
      登録日: 2013年3月 11日 
      投稿記事: 16 
      所在地: Dominica
  | 
  | 
| where can i purchase crysis 3 cd secrets less than EA retailer? |  
 |  
 
 |  
  | 
  
  
     | 
     | 
  
  
      | 
  
  
     |