ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
Android 後期試験 解答手順概要 (1)
日時: 2016/01/11 12:34
名前: lightbox



テーブル定義
create table `社員マスタ` (
	`社員コード` varchar(4)
	,`氏名` varchar(50)
	,`フリガナ` varchar(50)
	,`所属` varchar(4)
	,`性別` int
	,`作成日` datetime
	,`更新日` datetime
	,`給与` int
	,`手当` int
	,`管理者` varchar(4)
	,`生年月日` date
	,`削除区分` varchar(1)
	,primary key(`社員コード`)
)
メンテナンス

実機より、自分のPC の AN HTTPD にアクセス ( No.1 )
日時: 2016/01/15 14:49
名前: lightbox


日時: 2016/01/15 14:49
名前: lightbox
1) MySQL を起動
2) サービス内等、実行環境内で終了できるものは全て終了させる
3) AN HTTPD を管理者モードで起動
4) Android プロジェクト内の PHP 環境を AN HTTPD のエイリアスに登録する
5) PC のブラウザより、localhost で動作確認
6) dbdata_get_json.php にPCよりアクセスして、JSON を取得できる事を確認する
7) Android Studio 内で接続情報を書き換えて、エラーが出る事を確認
( チェックが終わったら元に戻してください )
8) 実機を Wi-Fi に接続
9) 実機のブラウザより、PC の ipアドレスでアクセスできる事を確認
<?php
header( "Content-Type: application/json; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
header( "Access-Control-Allow-Origin: *" );

// ***********************************************
// 利用変数設定
$json_type =  JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT;
$db_data_type = MYSQLI_ASSOC;
$_GET["scode"] = str_replace("'","''",$_GET["scode"]);
// -----------------------------------------------


// ***********************************************
// 接続情報
$server = 'localhost';
$db_name = 'lightbox';
$user = 'root';
$password = 'パスワード';
// -----------------------------------------------


// ***********************************************
// 接続
$connect = @ new mysqli($server, $user, $password, $db_name);
if ($connect->connect_error) {
	print <<< ERROR
{
    "type" : "GET";
    "status" : "ERROR";
    "scode": "{$_GET["scode"]}",
    "kj": "接続エラーです",
    "furi": null
}
ERROR;
	exit();
//	die('Connect Error (' . $connect->connect_errno . ') '
//	. $connect->connect_error);
}
$connect->set_charset("utf8"); 
// -----------------------------------------------


// ***********************************************
$query = <<< QUERY
select

社員コード as scode,
氏名 as kj,
フリガナ as furi

from 社員マスタ

where 社員コード = '{$_GET["scode"]}'
QUERY;
// -----------------------------------------------


// ***********************************************
// クエリ実行
$result = $connect->query($query); 
if ( !$result ) {
	print <<< ERROR
{
    "type" : "GET";
    "status" : "ERROR";
    "scode": "{$_GET["scode"]}",
    "kj": "クエリーに誤りがあります",
    "furi": "{$query}"
}
ERROR;
	exit();
	//die('クエリーに誤りがあります : ' . $connect->error );
}

$check = false;
while ($row = $result->fetch_array($db_data_type)) {

	$check = true;
	$row["type"] = "GET";
	$row["status"] = "SUCCESS";

	print json_encode($row,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
	print "\n";

}
// -----------------------------------------------

// ***********************************************
// 開放
$result->close();
// 接続解除
$connect->close();
// -----------------------------------------------


// ***********************************************
// エラー処理
if (!$check) {
	print <<< ERROR
{
    "type" : "GET";
    "status" : "ERROR";
    "scode": "{$_GET["scode"]}",
    "kj": "データがありません",
    "furi": null
}
ERROR;
}
// -----------------------------------------------

?>
初期状態では以下のようになるので、記述を追加して表示用の項目を完成させる必要があります
{
    "scode": "0001",
    "kj": "浦岡 友也",
    "furi": "ウラオカ トモヤ",
    "type": "GET",
    "status": "SUCCESS"
}
例) dbdata_get_json.php?scode=0001
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
表示部分の実装手順 ( No.2 )
日時: 2016/01/11 15:31
名前: lightbox
Syain クラス
1) Syain クラスに JSON から変換される変数を作成
2) 特殊コントロール用のクラス変数を作成
3) コンストラクタで初期値を設定
4) 特殊コントロール用に個別にメソッドを作成
MainActivity
1) Syain クラスのクラス変数に、MainActivity と コントールの参照をセットする
2) Syain クラスのインスタンスを作成
3) 特殊コントロールのセットアップを行う
4) Syain クラスのインスタンスを画面にバインドする
ButtonAction クラス
データが正常な場合、set メソッドで特殊コントロールに値を反映させる
このアーティクルの参照用URLをクリップボードにコピー メンテナンス