SQLの窓

2017年04月15日


Pleiades All in One(NEON) で、Windows アプリを作成する手順( WindowBuilder + Swing デザイナー or SWT デザイナー[JFace] )

現在、Pleiades All in One では、Eclipse 4.6 Neon 3 が最新バージョンなので、64bit版の Java Full Edition
 をダウンロードします。


Java だけではなく、Tomcat(6,7,8)JDK(6u48,7u80,8u121) も同梱されており、いろいろ便利に使えます。

解凍

Pleiades のダウンロードファイル(1.01G)はとても名前が長いので、Pleiades.zip に変更し、c:\ に移動してから 7-zip で解凍します。(昔から Pleiades で注意がうながされている、パスの長さの制限に対するものです)



jface プラグインの手動整備

ファイルをリネームするだけです。理由は解りませんが、本来の正しいファイルが .backup となっているので、.backup の無いファイルは適当なファイル名にして、.backup の付いたファイルを正式なファイルにします。

▼ リネーム前


▼ リネーム後


これは、Eclipse 4.4 Luna では必要無いのですが、たしか、Eclipse 4.5 Mars でも必要があると思います。これをしないと、実行時にエラーが発生します。(フォント用のプロパティファイルが、存在しないため)

最初の実行

Pleiades は、最初と、環境が変わった際に、以下を実行するように強く推奨されています。
eclipse.exe -clean.cmd

WindowBuilder のインストール

WindowBuilder のサイトよりインストール用の URL を取得します。



リンク先の URL をクリップボードにコピーします。そして、HELP => 新規ソフトウェアのインストール で、『作業対象』に URL を貼り付けて Enter キーを押して下さい。

WindowBuilder が表示されたら、チェックしてインストールを進めます。

SWT デザイナー[JFace] を使う場合

プロジェクトは専用のものを使いますので、『その他』から以下を選択して下さい。



プロジェクトを作成したら、CTRL+N でその他より、以下を選択して下さい。



実行してウインドウが表示されたら準備完了です。



Swing デザイナー を使う場合

この場合は、プラグインのリネームは必要ありません。プロジェクトも通常の Java プロジェクトで以下を選択します。



これも、実行してウインドウが表示されたら準備完了です。



posted by lightbox at 2017-04-15 20:02 | Comment(0) | java : WindowBuilder | このブログの読者になる | 更新情報をチェックする

PHP で MySQLをテストする為のソースコード


※ $_GET['text'] で入力された SQL が引き渡されます。
※ GET コマンドなので、内容はアドレスバーで確認する事ができます
※ Form を使わずにアドレスバーから直接 SQL を実行できます。

MySQL 改良版拡張モジュール
<?php
session_cache_limiter('nocache');
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SQL実行結果</title> 
</head>
<body style='white-space:pre;'>
<?php
print $_GET['text'] . "\n";

$server = 'localhost';
$dbname = 'lightbox';
$user = 'root';
$password = 'パスワード';

// ***************************
// 接続
// ***************************
$mysqli = @ new mysqli($server, $user, $password, $dbname);
if ($mysqli->connect_error) {
	print "接続エラーです : ({$mysqli->connect_errno}) ({$mysqli->connect_error})";
	exit();
}

// ***************************
// クライアントの文字セット
// ***************************
$mysqli->set_charset("utf8"); 

// ***************************
// クエリ
// ***************************
$result = $mysqli->query($_GET['text']);
if ( !$result ) {
	print "\n";
	print "<span style='color:#f00'>" . $mysqli->error . "</span>";
}

// ***************************
// 列数
// ***************************
$nfield = $result->field_count;
if ( $nfield ) {
	$ncount = 0;
	print "<table style='border:solid 1px #000;border-collapse:collapse;'>\n";

	print "\t<th style='border:solid 1px #000;padding:5px;'></th>\n";

	$field = $result->fetch_fields( );
	for( $i = 0; $i < $nfield; $i++ ) {
		print "\t<th style='border:solid 1px #000;padding:5px;'>{$field[$i]->name}</th>\n";
	}

	while ($row = $result->fetch_row()) {
		print "<tr>\n";
		print "\t<td style='border:solid 1px #000;padding:5px;'>" . ($ncount + 1) . "</td>\n";
		for( $i = 0; $i < $nfield; $i++ ) {

			print "\t<td style='border:solid 1px #000;padding:5px;'>{$row[$i]}</td>\n";
		}
		print "</tr>\n";
		$ncount++;
	}
	print "</table>";
}

// ***************************
// 接続解除
// ***************************
$mysqli->close();
?>

</body>
</html>


PHP 5.5.0 で非推奨になり、PHP 7.0.0 で削除
<?php
session_cache_limiter('nocache');
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SQL実行結果</title> 
</head>
<body style='white-space:pre;'>
<?php
print $_GET['text'] . "\n";

$server = 'localhost';
$dbname = 'lightbox';
$user = 'root';
$password = 'パスワード';

// ***************************
// 接続
// ***************************
$connect = @mysql_connect( $server, $user, $password );
if ( !$connect ) {
	print "接続エラーです";
	exit();
}

// ***************************
// DB選択
// ***************************
mysql_select_db( $dbname, $connect );
mysql_set_charset("utf8", $connect); 

// ***************************
// クエリ
// ***************************
$result = mysql_query($_GET['text'], $connect);
if ( !$result ) {
	print "\n";
	print "<span style='color:#f00'>" . mysql_error() . "</span>";
}

// ***************************
// 列数
// ***************************
$nfield = @mysql_num_fields( $result );
if ( $nfield ) {
	$ncount = 0;
	print "<table style='border:solid 1px #000;border-collapse:collapse;'>\n";

	print "\t<th style='border:solid 1px #000;padding:5px;'></th>\n";
	for( $i = 0; $i < $nfield; $i++ ) {
		$field = mysql_fetch_field( $result, $i );

		print "\t<th style='border:solid 1px #000;padding:5px;'>{$field->name}</th>\n";
	}

	while ($row = mysql_fetch_row($result)) {
		print "<tr>\n";
		print "\t<td style='border:solid 1px #000;padding:5px;'>" . ($ncount + 1) . "</td>\n";
		for( $i = 0; $i < $nfield; $i++ ) {
			print "\t<td style='border:solid 1px #000;padding:5px;'>{$row[$i]}</td>\n";
		}
		print "</tr>\n";
		$ncount++;
	}
	print "</table>";
}

// ***************************
// 接続解除
// ***************************
mysql_close($connect);
?>

</body>
</html>

※ このコードではセキュリティ上の考慮はされていません。



posted by lightbox at 2017-04-15 19:47 | PHP + データベース | このブログの読者になる | 更新情報をチェックする

JSON データを即 TABLE 要素にセットしてくれる jQuery プラグイン『DYNATABLE』の利用


デモページ

いろいろしっかりした API を揃えている優秀そうなプラグインなんですが、何故かさっぱり日本語のページがヒットせず、サンプルコードも見つかりません。なので、基本的なコードのみで即動作するコードの紹介です。

そもそも、目的としては PHP で JSON の配列データは埋め込んでしまって、そのまま jQuery のプラグインを起動させるという単純なもので、PHP 部分は <?= $変数 ?> とかで実装して下さい。

それと、配布ページのデモは、bootstrap 前提で表示されているので、こちらからのデモページでは cdnjs で貼り付けています。

ソースコード
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Dynatable/0.3.1/jquery.dynatable.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Dynatable/0.3.1/jquery.dynatable.min.js"></script>

<script>
$(function(){
	$('#my-table').dynatable({
		dataset: {
			records: [ {
				  "code" : "0001",
				  "name" : "浦岡 友也"
				}, {
				  "code" : "0002",
				  "name" : "山村 洋代"
				}, {
				  "code" : "0003",
				  "name" : "多岡 冬行"
				} ]
		}
	});
});
</script>
<div style='width:500px;margin:100px auto;'>
<table id="my-table" class="table table-bordered">
	<thead>
		<th>code</th>
		<th>name</th>
	</thead>
	<tbody></tbody>
</table>
</div>




posted by lightbox at 2017-04-15 17:09 | Comment(0) | jQuery + プラグイン | このブログの読者になる | 更新情報をチェックする

PHP の関数で規定されているキャッシュコントロールの無効 : session_cache_limiter( 'nocache' )

session_start() を実行しないと有効にならないので、セッションが必要無い場合は header を直書きすればいいと思いますが、セッションを有効にしても損は無いので以下のようにとておくと簡単です。

session_cache_limiter
<?php
session_cache_limiter('nocache');
session_start();
?>


header を直接書くと以下のようになります
<?php
header( "Expires: Thu, 19 Nov 1981 08:52:00 GMT" );
header( "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" );
header( "Pragma: no-cache" );
?>

▼ 以下は、Cache-Control の値についての解説です
HTTP キャッシュ
「no-store」はもっと単純です。返されたレスポンスのバージョンにかかわらず、ブラウザのキャッシュやすべての中間キャッシュはそのレスポンスを一切格納できません。たとえば、個人の機密データや銀行データが含まれているレスポンスなどです。ユーザーがこのアセットをリクエストするたびに、リクエストがサーバーに送信され、完全なレスポンスが毎回ダウンロードされます。
※ 一部引用
posted by lightbox at 2017-04-15 15:02 | Comment(0) | PHP + 特記事項 | このブログの読者になる | 更新情報をチェックする

PHP で漢字スペースと通常スペースのトリムとPHP正規表現チェッカー(置き換え)

※ 昔使っていた『PHP正規表現チェッカー』のサイトが閉鎖されたので他のサイトに変更しました

PHP では trim と言う関数で、文字列の先頭および末尾にあるホワイトスペースを取り除く事ができますが、デフォルトでは以下の文字を削除します。
" " (ASCII 32 (0x20)), 通常の空白。
"\t" (ASCII 9 (0x09)), タブ。
"\n" (ASCII 10 (0x0A)), リターン。
"\r" (ASCII 13 (0x0D)), 改行。
"\0" (ASCII 0 (0x00)), NULバイト
"\x0B" (ASCII 11 (0x0B)), 垂直タブ
で、日本語スペースはこのままでは削除してくれないので、追加してみると普通に削除してくれました。 Run Code で実行
<?php

    $kj = "漢字表示";
    $kj_space = " ";
    $a_space = " ";
   

    $str = "{$kj_space}{$a_space}{$kj}{$kj_space}{$a_space}";

    $str = trim($str, "{$a_space}\t\n\r\0\x0B{$kj_space}");
    
    print "|{$str}|";
    
?>
また、同様の結果を preg_replace で得る方法もテストしてみました。この場合重要なのは、パターン修飾子 の "u" でした。(パターンと対象文字列は、 UTF-8 として処理されます)

Run Code で実行
<?php

    $kj = "漢字表示";
    $kj_space = " ";
    $a_space = " ";
   

    $str = "{$kj_space}{$a_space}{$kj}{$kj_space}{$a_space}";

    $str = preg_replace( "/^[ \s]+/u", "", $str );
    $str = preg_replace( "/[ \s]+$/u", "", $str );
    
    print "|{$str}|";
    
?>

また、正規表現のパーターンを一つにして一回で置換する場合は以下のようになります
<?php

    $kj = "漢字表示";
    $kj_space = " ";
    $a_space = " ";
   

    $str = "{$kj_space}{$a_space}{$kj}{$kj_space}{$a_space}";

    $str = preg_replace( "/^[ \s]+|[ \s]+$/u", "", $str );
    
    print "|{$str}|";
    
?>
この場合、重要なのは | を使った構文です

確認は、PHP正規表現チェッカー(置き換え) で解りやすく行う事ができます

▼ パターン文字列は ^[ \s]+|[ \s]+$


PHP正規表現チェッカーで デベロッパーツールを F12 で開いて(コンソール) 以下を実行できます。
$("input[name='pattern").val("^[ \\s]+|[ \\s]+$");$("input[name='replacement']").val("削除");$("#subject").val("  漢字表示  ");$('#preg_replace').keyup();


※ このサイトでは、jQuery が使用されています


posted by lightbox at 2017-04-15 14:15 | Comment(0) | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり