PHP版 SQLの窓

  sqlwin.htm



  
<HTML>
<HEAD>
<TITLE>SQLの窓 PHP バージョン</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS">
</HEAD>
<FRAMESET id="TopFrame" rows="320,*">
	<FRAMESET id="NextFrame" cols="650,*">
		<FRAME name="InputFrame" src="input.php">
		<FRAME name="TableFrame" src="table.php">
	</FRAMESET>
	<FRAME name="OutputFrame" src="viewoutput.php">
</FRAMESET>
  



  input.php



  
<?
# **********************************************************
# 外部ファイル
# **********************************************************
require_once( 'db.php' );
require_once( 'model.php' );

# **********************************************************
# DB インスタンス
# **********************************************************
	$SQL = new DB( 'localhost', 'test' );
	$SQL->Debug = TRUE;

# **********************************************************
# 処理コントロール
# **********************************************************
	if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
		if ( $_POST['send'] == '検索' ) {
			DispRow( $SQL );
		}
		if ( $_POST['send'] == 'テーブル一覧' ) {
			DispTableList( $SQL );
		}
	}

# **********************************************************
# ビュー
# **********************************************************
	if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
		require_once('viewinput.php');
	}
	else {
		if ( $_POST['send'] == '検索' ) {
			require_once('viewoutput.php');
		}
		if ( $_POST['send'] == 'テーブル一覧' ) {
			require_once('viewtable.php');
		}
	}

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


	print "<PRE>";
	print_r( $_POST );
	print "</PRE>";

?>
  



  table.php

  
<?
# **********************************************************
# 外部ファイル
# **********************************************************
require_once( 'db.php' );
require_once( 'model.php' );

# **********************************************************
# DB インスタンス
# **********************************************************
	$SQL = new DB( 'localhost', 'test' );
	$SQL->Debug = TRUE;

# **********************************************************
# 処理コントロール
# **********************************************************
	if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
		if ( $_POST['send'] == '検索' ) {
			DispRow2( $SQL );
		}
	}

# **********************************************************
# ビュー
# **********************************************************
	if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
		require_once('viewtable.php');
	}
	else {
		require_once('viewoutput.php');
	}

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

	print "<PRE>";
	print_r( $_POST );
	print "</PRE>";

?>
  



  viewoutput.php

  
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS">
</HEAD>
<BODY>
<?= $RDATA ?>
</BODY>
</HTML>
  



  viewinput.php

  
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS">
</HEAD>
<BODY>
<TABLE border=0 cellspacing=0 cellpadding=0 bgcolor=white>
<TR>
	<TD rowspan=4>
		<FORM name=frmMain method=post target="OutputFrame">
		<TEXTAREA name=SQL cols=60 rows=20></TEXTAREA>
	</TD>
	<TD rowspan=4 width=30>
	</TD>
	<TD valign=top height=50>
		<INPUT
			type=submit
			name=send
			value="検索"
			style='width:120'
		>
	</TD>
</TR>
<TR>
	<TD valign=top height=50>
		<SELECT
			name=MaxRow
			style='width:120'
		>
		<OPTION value=50>50
		</SELECT>
		</FORM>
	</TD>
</TR>
<TR>
	<TD valign=top height=50>
		<FORM name=frmTable method=post target="TableFrame">
		<INPUT
			type=submit
			name=send
			value="テーブル一覧"
			style='width:120'
		>
		</FORM>
	</TD>
</TR>
<TR>
	<TD height=100>
	</TD>
</TR>
</TABLE>
</BODY>
</HTML>
  



  viewtable.php

  
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS">
</HEAD>
<BODY>
<FORM name=frmMain method=post target="OutputFrame" action="table.php">

<TABLE border=0 cellspacing=0 cellpadding=0 bgcolor=white>
<TR>
	<TD>
		<SELECT
			name=TableList
			size=18
			style='width:300'
		>
		<?= $TABLELIST ?>
		</SELECT>
	</TD>
</TR>
<TR>
	<TD height=5>
	</TD>
</TR>
<TR>
	<TD>
		<INPUT
			type=submit
			name=send
			value="検索"
			style='width:120'
		>
	</TD>
</TR>
</TABLE>

</FORM>
</BODY>
</HTML>
  



  model.php

  
<?
foreach( $_GET as $Key => $Value ) {
	$_GET[$Key] = str_replace("\\\\", "\\", $Value );
}
foreach( $_POST as $Key => $Value ) {
	$_POST[$Key] = str_replace("\\\\", "\\", $Value );
}

# **********************************************************
# 行データ表示
# **********************************************************
function DispRow( &$SQL ) {

	global $RDATA;

	if ( trim($_POST['SQL']) == '' ) {
		return;
	}

	$column = $SQL->QueryEx( $_POST['SQL'] );

	$RDATA = "<TABLE border=0 cellspacing=1 cellpadding=5 bgcolor=black>";

	$idx = mysql_num_fields( $SQL->Result );
	for ( $i = 0; $i < $idx; $i++ ) {
		$RDATA .= "<TH nowrap bgcolor=silver>";
		$RDATA .= mysql_field_name( $SQL->Result, $i );
		$RDATA .= "</TH>";
	}

	while ( $column ) {

		$RDATA .= "<TR>";
		for ( $i = 0; $i < $idx; $i++ ) {
			$RDATA .= "<TD nowrap bgcolor=white>$column[$i]</TD>";
		}
		$RDATA .= "</TR>";

		$column = $SQL->QueryEX( );		

	}

	$RDATA .= "</TABLE>";

}

# **********************************************************
# テーブル一覧表示
# **********************************************************
function DispTableList( &$SQL ) {

	global $TABLELIST;

	$column = $SQL->QueryEX( "show tables" );

	while ( $column ) {

		if ( $TABLELIST == '' ) {
			$TABLELIST .= "<OPTION value='$column[0]' selected>$column[0]";
		}
		else {
			$TABLELIST .= "<OPTION value='$column[0]'>$column[0]";
		}

		$column = $SQL->QueryEX( );

	}

}

# **********************************************************
# 行データ表示
# **********************************************************
function DispRow2( &$SQL ) {

	global $RDATA;

	$column = $SQL->QueryEx( "show index from {$_POST['TableList']}" );
	if ( $column ) {
		$cnt = 0;
		while ( $column ) {
			$KEY_NAME[$cnt] = $column['Column_name'];
			if ( $KEY_PARAM == '' ) {
				$KEY_PARAM .= "key$cnt=" . urlencode($KEY_NAME[$cnt]);
			}
			else {
				$KEY_PARAM .= "&key$cnt=" . urlencode($KEY_NAME[$cnt]);
			}
			$column = $SQL->QueryEX( );
			$cnt++;
		}

		$column = $SQL->QueryEx( "select * from {$_POST['TableList']}" );

		$RDATA = "<TABLE border=0 cellspacing=1 cellpadding=5 bgcolor=black>";
		$RDATA .= "<TH nowrap bgcolor=silver>";
		$RDATA .= "</TH>";

		$idx = mysql_num_fields( $SQL->Result );
		for ( $i = 0; $i < $idx; $i++ ) {
			$RDATA .= "<TH nowrap bgcolor=silver>";
			$RDATA .= mysql_field_name( $SQL->Result, $i );
			$RDATA .= "</TH>";
		}

		$no = 1;
		while ( $column ) {

			$DATA_PARAM = "";
			for( $i = 0; $i < count( $KEY_NAME ); $i++ ) {
				$DATA_PARAM .= "&data$i=";
				$DATA_PARAM .= urlencode($column[$KEY_NAME[$i]]);
			}

			$RDATA .= "<TR>";
			$RDATA .= "<TD nowrap bgcolor=white>";
			$RDATA .= "<A href='data.php?$KEY_PARAM$DATA_PARAM&table=";
			$RDATA .= urlencode($_POST['TableList']);
			$RDATA .= "' target='DataView'>";
			$RDATA .= $no . "</A></TD>\n";

			for ( $i = 0; $i < $idx; $i++ ) {
				$RDATA .= "<TD nowrap bgcolor=white>$column[$i]</TD>";
			}
			$RDATA .= "</TR>";

			$column = $SQL->QueryEX( );		
			$no++;

		}

	}
	else {
		$column = $SQL->QueryEx( "select * from {$_POST['TableList']}" );

		$RDATA = "<TABLE border=0 cellspacing=1 cellpadding=5 bgcolor=black>";

		$idx = mysql_num_fields( $SQL->Result );
		for ( $i = 0; $i < $idx; $i++ ) {
			$RDATA .= "<TH nowrap bgcolor=silver>";
			$RDATA .= mysql_field_name( $SQL->Result, $i );
			$RDATA .= "</TH>";
		}

		while ( $column ) {

			$RDATA .= "<TR>";
			for ( $i = 0; $i < $idx; $i++ ) {
				$RDATA .= "<TD nowrap bgcolor=white>$column[$i]</TD>";
			}
			$RDATA .= "</TR>";

			$column = $SQL->QueryEX( );		

		}
	}

	$RDATA .= "</TABLE>";

}

# **********************************************************
# 行データ表示
# **********************************************************
function DispRow3( &$SQL ) {

	global $RDATA;

	$COND = " where ";

	foreach( $_GET as $Key => $Value ) {
		if ( substr( $Key, 0, 3 ) == 'key' ) {
			if ( $COND != " where " ) {
				$COND .= " and ";
			}
			$COND .= "`$Value`" . " = ";
			$Data = str_replace( 'key', 'data', $Key );
			$COND .= "'" . $_GET[$Data] . "'";
		}
	}

	$Query = "select * from {$_GET['table']} $COND";

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

	$RDATA = "<TABLE border=0 cellspacing=1 cellpadding=5 bgcolor=black>";

	$idx = mysql_num_fields( $SQL->Result );
	for ( $i = 0; $i < $idx; $i++ ) {
		$RDATA .= "<TR>";
		$RDATA .= "<TH nowrap bgcolor=silver>";
		$RDATA .= mysql_field_name( $SQL->Result, $i );
		$RDATA .= "</TH>";
		$RDATA .= "<TD nowrap bgcolor=white>$column[$i]</TD>";
		$RDATA .= "</TR>";
	}

	$RDATA .= "</TABLE>";

}
?>
  



  data.php

  
<?
# **********************************************************
# 外部ファイル
# **********************************************************
require_once( 'db.php' );
require_once( 'model.php' );

# **********************************************************
# DB インスタンス
# **********************************************************
	$SQL = new DB( 'localhost', 'test' );
	$SQL->Debug = TRUE;

# **********************************************************
# 処理コントロール
# **********************************************************
	if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
		DispRow3( $SQL );
	}

# **********************************************************
# ビュー
# **********************************************************
	require_once('viewoutput.php');

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

	print "<PRE>";
	print_r( $_GET );
	print "</PRE>";

?>
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ