■SELECT の結果を2次元配列で返す。
<呼び出し php>
<呼び出し php>
<?php $sql="select * from seiseki "; //print $sql; $Data = LoadDatabase4( "phptest",$sql, "EUC_JP", "SJIS" ); if ($Data=="") { print(" ※検索データがありません!!"); return; } //表示処理 $i=0; $cnt=0; print("<TABLE BORDER='1' align=center cellspacing=1 cellpadding=5>"); for ($cnt=0;$cnt<count($Data);$cnt++){ // データ表示 if ($cnt==0) { print("<TR bgcolor= '#ccff99' align=center>"); }else{ print("<TR>"); } for ($i=0;$i<count($Data[$cnt]);$i++){ if ($i==1){ //print("<TD style=width:5 >"); print("<TD>"); }else{ print("<TD>"); } print($Data[$cnt][$i]."<br>"); print("</TD>"); } print("</TR> \n"); } print("</TABLE>"); } ?> <LoadDatabase4関数> //-- LoadDatabase4 --------------------------------------------- // データベースの内容を2次元配列に読み込む。 // 項目名を最初のレコードに入れる。 function LoadDatabase4( $db_name,$sql,$encoding = "EUC_JP",$s_encoding = "SJIS" ) { require_once("DB.php"); //pearのdbクラス $dsn="odbc://$db_name"; //DSNの指定 $db = DB::connect($dsn); //DB接続 if (DB::isError( $db )) { echo "DB接続エラー : " . DB::errorMessage( $db ) . "<BR>\n"; exit; } //SQLを実行 $sql=mb_convert_encoding($sql, $s_encoding, $encoding); $result = $db->query($sql); //エラーチェック if (DB::isError($result)) { echo("<BR>".$result->getMessage()); // ResultSet開放 $result->free(); // DB接続終了 $db->disconnect(); return false; } //配列データ編集 $i=0; $x=0; $cnt=0; // 項目名編集 while($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) { if ($cnt==0){ $cName=array_keys($row); for ($x=0;$x<count($cName);$x++){ $data[0][$x]=mb_convert_encoding($cName[$x], $encoding, $s_encoding); } $cnt++; } // データ編集 while($i < $result->numCols()) { $data[$cnt][$i]=mb_convert_encoding($row[$cName[$i]], $encoding, $s_encoding); $i++; } $i=0; $cnt++; } // ResultSet開放 $result->free(); // DB接続終了 $db->disconnect(); //読み取り結果を返す if ($cnt==0){ return false; }else{ return $data; } }
※コメント投稿者のブログIDはブログ作成者のみに通知されます