「mySQL」カテゴリーアーカイブ

スクリプト事例ースコアをランキングして表示

PHP用のスクリプト(コア部分)

    $query = "SELECT * FROM `scores` ORDER by `score` DESC, `time` ASC LIMIT 20";//score timeの順にソート
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());
 
    $num_results = mysql_num_rows($result);  
 
    for($i = 0; $i < $num_results; $i++)
    {
         $row = mysql_fetch_array($result);
		 echo $row['cName'] . "\t" . $row['name'] . "\t" . $row['score'] . "\t". $row['time'] ."\n";
    }

score(降順)と time(昇順)でソートしたデータの

色,名前,スコア,時間を表示している

 

ユーザ名重複をチェックしていないので,1人で何ランキングも表示される.ユーザ名重複チェックは,PHP側,Unity側のどちらですればいいのか,今後検討.

MySQL(5.5)にテーブルを追加(ハイスコア用)

ハイスコア記録用のCSスクリプト組んでます.

たぶんscoresというテーブルを作って,ID番号(自動インクリメント),名前,スコア,cName(独自に追加)を要素にするというものだと思う

CREATE TABLE `scores` (
   `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
   `name` VARCHAR(128) NOT NULL DEFAULT 'anonymous',
   `score` INT(10) UNSIGNED NOT NULL DEFAULT '0',
`cName` VARCHAR(128) NOT NULL DEFAULT 'anonymous'

)
ENGINE=MyISAM;

最後のENGINE=MyISAMはmySQL5.5用

4.xだと

ENGINE=MyISAM;

だそうです

追加

CREATE TABLE `scores` (
   `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
   `name` VARCHAR(128) NOT NULL DEFAULT 'anonymous',
`cName` VARCHAR(128) NOT NULL DEFAULT 'anonymous',
`area` VARCHAR(128) NOT NULL DEFAULT 'anonymous',
`quize` BOOL NOT NULL DEFAULT '0',
   `score` INT(10) UNSIGNED NOT NULL DEFAULT '0'
`time` INT(10) UNSIGNED NOT NULL DEFAULT '0'
)
ENGINE=MyISAM;

 

mySQL覚え書き

自鯖のmysql

同セグメントからの他IPでも,sqlへの書き込みできない

phpは動作している

phpmyAdminでも動作は確認している

mysqlの設定ファイルが,ローカル向けになっているのが原因(外からは見えたりするのに)

sudo nano /etc/mysql/my.cnf

の設定ファイルを変更

bind-address = 127.0.0.1

#bind-address = 127.0.0.1

でコメントアウトしどこからでも接続可能にする(ただし危険)

物理的に外とつながらないサーバの予定なので,これでも一応OK.

外でタブレットを使い,クローズド環境でのWSの実験用の予定