Beispiel #1
0
 /**
  * Queryインスタンスに設定された検索条件を元に並び替え済みの検索結果商品IDの配列を取得する。
  *
  * 検索条件は, Query::setWhere() 関数で設定しておく必要があります.
  *
  * @param  Query $objQuery Query インスタンス
  * @param  array    $arrVal   検索パラメーターの配列
  * @return array    商品IDの配列
  */
 public function findProductIdsOrder(Query &$objQuery, $arrVal = array())
 {
     $table = 'dtb_products AS alldtl';
     if (is_array($this->arrOrderData) and $objQuery->order == '') {
         $o_col = $this->arrOrderData['col'];
         $o_table = $this->arrOrderData['table'];
         $o_order = $this->arrOrderData['order'];
         $objQuery->setOrder("T2.{$o_col} {$o_order}");
         $sub_sql = $objQuery->getSql($o_col, "{$o_table} AS T2", 'T2.product_id = alldtl.product_id');
         $sub_sql = $objQuery->dbFactory->addLimitOffset($sub_sql, 1);
         $objQuery->setOrder("({$sub_sql}) {$o_order}, product_id");
     }
     $arrReturn = $objQuery->getCol('alldtl.product_id', $table, '', $arrVal);
     return $arrReturn;
 }
 /**
  * テーブル一覧を取得する
  *
  * MDB2_Driver_Manager_pgsql#listTables の不具合回避を目的として独自実装している。
  * @return array テーブル名の配列
  */
 public function listTables(Query &$objQuery)
 {
     $col = 'tablename';
     $from = 'pg_tables';
     $where = "schemaname NOT IN ('pg_catalog', 'information_schema', 'sys')";
     return $objQuery->getCol($col, $from, $where);
 }