ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
PHP シンプル問合せ
日時: 2007/09/02 16:44
名前: lightbox



  ◎重要
require_once( "http://homepage2.nifty.com/lightbox/gen/db.php" );

のように、URL 指定する為には PHP5 では必ず allow_url_include を On にする必要があります
allow_url_fopen も On である必要がありますが、デフォルトで On になっています。

※ php4 に、allow_url_include はありません
ブラウザキャッシュ制御の効果 IE の設定で、以下のようにしてから、random.phprandom2.php の実行結果の差を確認して下さい random.php は、表示結果が変化しません。 これは、リクエストがサーバーへ行かず、ブラウザのキャッシュより表示しているからです。 WEB アプリケーションでは、このような問題は処理の根底を覆す事になるので、 以下のような処理を通常行います。
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
キャッシュ制御には、いろいろなヘッダの送り方があると思いますが、 上記方法は、キャッシュの期限を過去にする事によって、キャッシュしないようにしています。   random2.php
<?
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
# **********************************************************
# 外部ファイル
# **********************************************************
$conf_client_charset = "euc-jp";
$conf_db_type = 1;
require_once( "http://homepage2.nifty.com/lightbox/gen/db.php" );

# **********************************************************
# 接続
# **********************************************************
$SQL = new DB( "********", "********", "********", "********"  );

$Query = "select * from 商品マスタ order by Rand()";

$Column = $SQL->QueryEx( $Query );

while( $Column ) {

	$Line = "";
	for( $i = 0; $i < $SQL->nField; $i++ ) {
		if ( $Line != "" ) {
			$Line .= ",";
		}
		$Line .= $Column[$i];
	}
	print $Line . "<br>";

	$Column = $SQL->QueryEx( );
}

# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();

?>
上記コードのデータベースの扱いはこちらを参照
メンテナンス

テーブルへの埋め込み ( No.1 )
日時: 2007/09/02 16:27
名前: lightbox


日時: 2007/09/02 16:27
名前: lightbox
short_open_tag

PHP コードの記述は、<?php 〜 ?> または、<? 〜 ?> で行われますが、
後者は、short_open_tag と呼ばれ、通常利用可能となっています。
設定は、php.ini, .htaccess または httpd.confで行われるので注意が必要ではありますが、
埋め込み処理を行う場合、短いほうが効率が良いのは言うまでもありません

※ PHPマニュアル参照:php.ini ディレクティブ




動的および静的キャラクタセットの設定

PHP からは、通常 HTTP ヘッダに対して、HTML のキャラクタセットを指定します。

header( "Content-Type: text/html; Charset=$conf_client_charset" );
HTML の場合は、META 要素で指定しますが、以下では $conf_client_charset という変数 を使用して両方に同じものを設定しています
<META http-equiv="Content-type" content="text/html; charset=<?= $conf_client_charset ?>">
それぞれ、コード部分と HTML 部分での埋め込みであり、記述方法の違いに注意して下さい。   req_simple_01.php
<?
$conf_client_charset = "euc-jp";
header( "Content-Type: text/html; Charset=$conf_client_charset" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
# **********************************************************
# 外部ファイル
# **********************************************************
$conf_db_type = 1;
require_once( "http://homepage2.nifty.com/lightbox/gen/db.php" );

# **********************************************************
# 接続
# **********************************************************
$SQL = new DB( "********", "********", "********", "********"  );

$Query = "select 内容 from ora_問題 where 問題ID between 210 and 220 order by 問題ID";

$Column = $SQL->QueryEx( $Query );

$GLOBALS['qdata'] = "";
while( $Column ) {

	$GLOBALS['qdata'] .= "<TR><TD>{$Column['内容']}</TD></TR>\n";

	$Column = $SQL->QueryEx( );
}

# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();

?>
<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=<?= $conf_client_charset ?>">
<TITLE>HTML テンプレート</TITLE>
<STYLE type="text/css">
* {
	font-family: "MS Pゴシック";
	font-size: 12px;
}
</STYLE>
</HEAD>

<BODY>

<TABLE border="1" cellpadding="5">
<?= $GLOBALS['qdata'] ?>
</TABLE>

</BODY>
</HTML>
$GLOBALS変数 $GLOBALS には、全てのグローバル変数のインターフェイスがあります。 アプリケーションが持つ全てのグローバル変数に対してアクセス可能です。 特に、$GLOBALS['qdata'] は、と $qdata がまったく同じものを指す事に注目して下さい 文字列のパース ダブルクォーテーション内の $ に続く文字列は、変数とみなされて、 内容が文字列内に展開されます。
header( "Content-Type: text/html; Charset=$conf_client_charset" );
その中でも、注意すべき記述方法は、{} を使った書き方であり、変数の範囲を 明示する事ができます。主に、複雑な変数表現には必ず指定します。
$GLOBALS['qdata'] .= "<TR><TD>{$Column['内容']}</TD></TR>\n";
このアーティクルの参照用URLをクリップボードにコピー メンテナンス