まずEC-CUBEで作成、利用されているデータベースの詳細一覧は
次のサイトからエクセルファイルでダウンロードできます。
EC-CUBEマニュアルサイト
画面左にあるカスタマイズのデータベース構成という項目ですね。
ここからファイルをダウンロードできるページへいけます。
今回はこの各テーブルに登録されているデータをphpファイルから
どのように取得して、PHPファイル内で利用できるのか?って話ですね。
SQLの文法も絡んでくるのですが、そこの説明は省略しますね。
簡単なデータ取得方法
dtb_baseinfoというテーブルの全項目のデータを取得したいとします。
これは特定商取引法に基づく表記で必要な情報が格納されている
テーブルですね。管理画面から情報を登録できます。
具体的には以下のようなデータが格納されています。
law_company:販売業者
law_manager:運営責任者
law_zip01:郵便番号1
law_zip02:郵便番号2
law_email:メールアドレス
・・・etc
ちなみにデータ数は1つです。
以下はSC_Helper_DBクラスから抜粋です。
/**
* 店舗基本情報を取得する
* @return array 店舗基本情報の配列
*/
function sf_getBasisData(){
$objQuery = new SC_Query
$arrRet = $objQuery->select('*', 'dtb_baseinfo' )
if( isset($arrRe[0]) ) return $arrRet[0];
return array();
}
恐らくこれが条件であるwhere文がない一番シンプルな取得方法ではないかと思います。
※ SQLの文法の説明はここでは省略します。
arrRetにはどのような形でデータが格納されているのか??
$objQuery->select();の返り値は2次元配列です。
たとえばデータベースに登録されている販売業者の情報、law_companyには
以下のようにしてアクセスできます。
$var = $arrRet[0]['law_company'];
これでvarという変数にデータベースに登録されているlaw_companyの情報が
格納されます♪
メールアドレスを取得したい場合は同様に
$var = $arrRet[0]['law_email'];
とすればOKです♪
今回はデータが1つなので、取得したデータは$arrRet[0]に格納されています。
データが複数ある場合は$arrRet[0]~$arrRet[データ数-1]に格納されています。
店舗の情報は1つしかないので$arrRet[0]だけを参照すればよいのですが
仮に店舗が複数あって(データベースに複数登録されていて)、2つ目の店舗の
メールアドレスにアクセスしたいときは次のようになります。
$var = $arrRet[1]['law_email'];
実際は複数店舗登録無理ですがw
商品データは複数あるので、データベースから商品データを取得して
参照する際は上記の知識がベースとなりますね。
長くなってきましたが、もう少しだけ・w・
さっきは一番簡単な方法でしたが、次は一般的なデータ取得方法を。
ちなみにデータを抽出する条件の記述方法が違うだけで、帰ってくる結果の
形式は全く同じです。
例としてdtb_products_classから、1万円以上、2万円以下の商品を取り出し
商品ID、販売価格、在庫数の3つのデータだけを抽出し、価格で並び替えたいとします。
データベーステーブルでは以下のようになっています。
product_ID:商品ID、stock:在庫数、price01:価格
取り出す1例として以下のような記述が可能です。
$objQuery = new SC_Query
$col = "product_ID ";
$col .= " ,stock" ;
$col .= " ,price01";
$table = "dtb_products_class";
$where$ = "? >= price01 AND price01 >= ?"
$where_vals = array(20000,10000);
$objQuery->setOrder('price01');
$arrRet = $objQuery->select($col, $table, $where, $where_vals)
※ $arrRetのデータ形式は上記と同じく2次元配列です。
$where文の、?、は$where_valsの配列の要素に置き換えられます。
そのため?の数と配列の要素数も一致します。
つまり、上記の文は以下のSQL文と同じです。
SELECT product_ID, stock, price01 FROM dtb_product_class WHERE 20000 >= price01 AND price01 >= 10000
この記述の利点は、条件が変数で与えられても使えることです。
$where_vals[0] = $max_price;
$where_vals[1] = $min_price;
とすることもできますから♪
phpファイルからデータベースに登録されているデータを取得する基本的な方法は以上です♪
ではでは、今回はこのあたりで~(/・ω・)/
ブログトップへ
次のサイトからエクセルファイルでダウンロードできます。
EC-CUBEマニュアルサイト
画面左にあるカスタマイズのデータベース構成という項目ですね。
ここからファイルをダウンロードできるページへいけます。
今回はこの各テーブルに登録されているデータをphpファイルから
どのように取得して、PHPファイル内で利用できるのか?って話ですね。
SQLの文法も絡んでくるのですが、そこの説明は省略しますね。
簡単なデータ取得方法
dtb_baseinfoというテーブルの全項目のデータを取得したいとします。
これは特定商取引法に基づく表記で必要な情報が格納されている
テーブルですね。管理画面から情報を登録できます。
具体的には以下のようなデータが格納されています。
law_company:販売業者
law_manager:運営責任者
law_zip01:郵便番号1
law_zip02:郵便番号2
law_email:メールアドレス
・・・etc
ちなみにデータ数は1つです。
以下はSC_Helper_DBクラスから抜粋です。
/**
* 店舗基本情報を取得する
* @return array 店舗基本情報の配列
*/
function sf_getBasisData(){
$objQuery = new SC_Query
$arrRet = $objQuery->select('*', 'dtb_baseinfo' )
if( isset($arrRe[0]) ) return $arrRet[0];
return array();
}
恐らくこれが条件であるwhere文がない一番シンプルな取得方法ではないかと思います。
※ SQLの文法の説明はここでは省略します。
arrRetにはどのような形でデータが格納されているのか??
$objQuery->select();の返り値は2次元配列です。
たとえばデータベースに登録されている販売業者の情報、law_companyには
以下のようにしてアクセスできます。
$var = $arrRet[0]['law_company'];
これでvarという変数にデータベースに登録されているlaw_companyの情報が
格納されます♪
メールアドレスを取得したい場合は同様に
$var = $arrRet[0]['law_email'];
とすればOKです♪
今回はデータが1つなので、取得したデータは$arrRet[0]に格納されています。
データが複数ある場合は$arrRet[0]~$arrRet[データ数-1]に格納されています。
店舗の情報は1つしかないので$arrRet[0]だけを参照すればよいのですが
仮に店舗が複数あって(データベースに複数登録されていて)、2つ目の店舗の
メールアドレスにアクセスしたいときは次のようになります。
$var = $arrRet[1]['law_email'];
実際は複数店舗登録無理ですがw
商品データは複数あるので、データベースから商品データを取得して
参照する際は上記の知識がベースとなりますね。
長くなってきましたが、もう少しだけ・w・
さっきは一番簡単な方法でしたが、次は一般的なデータ取得方法を。
ちなみにデータを抽出する条件の記述方法が違うだけで、帰ってくる結果の
形式は全く同じです。
例としてdtb_products_classから、1万円以上、2万円以下の商品を取り出し
商品ID、販売価格、在庫数の3つのデータだけを抽出し、価格で並び替えたいとします。
データベーステーブルでは以下のようになっています。
product_ID:商品ID、stock:在庫数、price01:価格
取り出す1例として以下のような記述が可能です。
$objQuery = new SC_Query
$col = "product_ID ";
$col .= " ,stock" ;
$col .= " ,price01";
$table = "dtb_products_class";
$where$ = "? >= price01 AND price01 >= ?"
$where_vals = array(20000,10000);
$objQuery->setOrder('price01');
$arrRet = $objQuery->select($col, $table, $where, $where_vals)
※ $arrRetのデータ形式は上記と同じく2次元配列です。
$where文の、?、は$where_valsの配列の要素に置き換えられます。
そのため?の数と配列の要素数も一致します。
つまり、上記の文は以下のSQL文と同じです。
SELECT product_ID, stock, price01 FROM dtb_product_class WHERE 20000 >= price01 AND price01 >= 10000
この記述の利点は、条件が変数で与えられても使えることです。
$where_vals[0] = $max_price;
$where_vals[1] = $min_price;
とすることもできますから♪
phpファイルからデータベースに登録されているデータを取得する基本的な方法は以上です♪
ではでは、今回はこのあたりで~(/・ω・)/
ブログトップへ