忍者ブログ

Spare Blog

フリーゲームを公開しているSpare Blade(http://tomatoes.michikusa.jp/)のブログです。 思いついたこととか役に立ちそうなことを書いていきたいと思います。 ゲームの制作状況はTwitter(https://twitter.com/Spare_Blade)に書いていきます。
MENU

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ウディタでネットランキングをやろうとした時のメモ

大すき!ワンオペレーションではネットランキング機能が搭載されています。
これはウディタのダウンロード機能を使ったものです。
このネットランキングを作るのにやったこと、必要だったことをメモしておきます。

◆何がいるのか


必要なものは
・PHPファイル
・データベース
(+ PHPやDBが使えるレンタルサーバー。自分の場合はさくらインターネット)

◆何が行われているのか


【ウディタ】
ダウンロードイベントを実行。
ダウンロード先URLには、情報(名前、スコアなど)をプラスしておく

↓接続時に、URL後ろにプラスした情報が送られる(=GET形式)

【PHP(※ダウンロード先)】
・受け取った情報を、データベース(別途用意)に登録
・データベースからスコアのランキングを引っ張ってくる
PHPには、最終的に、取得したランキングが書かれた文が表示される
↓こんな感じ
    過労死     68 14/09/10 17:43:49
black 56 14/09/10 17:37:05
shine 26 14/09/11 15:07:42
aa 25 14/09/11 12:16:49
ムツキ 25 14/09/11 6:54:47
★水月 25 14/09/10 19:17:27
あるま 25 14/09/11 22:31:28
shine 25 14/09/10 18:31:47
zz 25 14/09/10 17:24:51
くろこーぷ 25 14/09/12 2:41:54




↓ダウンロードイベントは、この最終的に表示された文をダウンロードしてくる

【ウディタ】
PHPから文を取得
文字列変数に代入

これを文字列ピクチャなりで表示することになる。

◆ソースコード


MySQLの場合
(※私が使った時のものです。これをコピペすれば即使えるというわけでもありません。飽くまで参考用として。)
<?php
//------------------------------------------------------------メモ
//【文字コードについて】
//ウディタからの取得時→Shift_JIS
//なので、来たデータをそのまま返す場合は文字コード変換は不要。
//しかし、PHPから表示したデータを返す場合、UTF-8なので文字コード変換が必要。
//------------------------------------------------------------
$name=$_GET[\'name\'];//ウディタのDL機能で、URLにくっつけて送った変数を取得
$score=$_GET[\'score\'];//ウディタのDL機能で、URLにくっつけて送った変数を取得
$registtime=date(\"y/m/d G:i:s\");//登録時間を取得
$name=mb_convert_encoding($name, \"UTF-8\", \"Shift_JIS\");
//↑mysqlはUTF-8なので、ウディタから来たShift_JISから変換する必要がある。(表示されない)
$name=htmlspecialchars($name);//汚物を消毒(HTMLタグがウディタから送られてきた時用対策)
//------------------------------------------------------------SQL実行(挿入)
$dsn=\'mysql:dbname=☆;host=★\';//【注意】☆←DB名、★←ホスト名
$user=\'●\';//【注意】●←DBのユーザー名
$password=\'○\';//【注意】○←DB接続の為のパスワード
$dbh=new PDO($dsn,$user,$password);//↑の3つの情報を使ってDBに接続する
$dbh->query(\'SET NAMES utf8\');

$sql=\'INSERT INTO ◆(name,score,registtime) VALUES (?,\"\'.$score.\'\",\"\'.$registtime.\'\")\';
//↑SQL文(どういう形でDBにデータ登録するか指定)【注意】◆←DBの中のテーブル名
$stmt=$dbh->prepare($sql);
$data[]=$name;//SQLインジェクション対策
$stmt->execute($data);//SQLインジェクション対策

$dbh=null;//DB閉じる
//------------------------------------------------------------SQL実行(取り出し)
$dsn=\'mysql:dbname=☆;host=★\';//【注意】☆←DB名、★←ホスト名
$user=\'●\';//【注意】●←DBのユーザー名
$password=\'○\';//【注意】○←DB接続の為のパスワード
$dbh=new PDO($dsn,$user,$password);//↑の3つの情報を使ってDBに接続する
$dbh->query(\'SET NAMES sjis\');
mysql_set_charset(\'sjis\');//ウディタはShift_JISなので、mysqlから来たUTF-8から変換する必要がある。(文字化け)

$sql=\'SELECT * FROM daisuki WHERE 1 ORDER BY roudou DESC\';
//↑SQL文(どういう形でDBからデータを持ってくるか指定)
$stmt=$dbh->prepare($sql);
$stmt->execute();//SQL実行
//【取り出したのを表示する】
for($i=1;$i<=10;$i++){//1〜10位までを取り出す
$rec=$stmt->fetch(PDO::FETCH_ASSOC);
if($rec==false){ //中身がもうない場合
break; //中断
}

$hyoujiname=$rec[\'name\'];
$hyoujiroudou=$rec[\'roudou\'];
$hyoujiscore=$rec[\'score\'];
//【取り出したデータを文字にして表示】
print str_pad($hyoujiname,10,\' \',0);//変数hyoujinameが、6ケタに満たなかったら、「_」で、左から補う
print\" \";
print str_pad($hyoujiroudou,6,\' \',0);//変数hyoujiscoreが、6ケタに満たなかったら、「_」で、左から補う
print\" \";
print $rec[\'tourokuji\'];
print\"\\n\";//改行
}
$dbh=null;//DB閉じる
?>




◆参考




いきなりはじめるPHP





PR

Comment

お名前
タイトル
E-MAIL
URL
コメント
パスワード

× CLOSE

カレンダー

03 2024/04 05
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

フリーエリア

最新コメント

2015 / 02 / 06 ( Fri ) 22 : 16 : 52
2014 / 08 / 20 ( Wed ) 06 : 43 : 29

最新トラックバック

プロフィール

HN:
sep
HP:
性別:
非公開
職業:
趣味:
自己紹介:

QRコード

ブログ内検索

× CLOSE

Copyright © Spare Blog : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]