/**
  * SC_Queryインスタンスに設定された検索条件を元に並び替え済みの検索結果商品IDの配列を取得する。
  *
  * 検索条件は, SC_Query::setWhere() 関数で設定しておく必要があります.
  *
  * @param  SC_Query $objQuery SC_Query インスタンス
  * @param  array    $arrVal   検索パラメーターの配列
  * @return array    商品IDの配列
  */
 public function findProductIdsOrder(&$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;
 }
Beispiel #2
0
    /**
     * SC_Queryインスタンスに設定された検索条件をもとに対象商品数を取得する.
     *
     * 検索条件は, SC_Query::setWhere() 関数で設定しておく必要があります.
     *
     * @param SC_Query $objQuery SC_Query インスタンス
     * @param array $arrVal 検索パラメーターの配列
     * @return array 対象商品ID数
     */
    function findProductCount(&$objQuery, $arrVal = array())
    {
        $table = <<<__EOS__
                 dtb_products AS alldtl
            JOIN dtb_product_categories AS T2
              ON alldtl.product_id = T2.product_id
            JOIN dtb_category
              ON T2.category_id = dtb_category.category_id
__EOS__;
        $objQuery->setGroupBy('alldtl.product_id');
        $sql_base = $objQuery->getSql('alldtl.product_id', $table);
        return $objQuery->getOne("SELECT count(*) FROM ( {$sql_base} ) as t", $arrVal);
    }
 /**
  * 全件取得
  */
 function getAll(SC_Query $objQuery = NULL)
 {
     if ($objQuery == null) {
         $objQuery =& SC_Query_Ex::getSingletonInstance();
     }
     $this->setSelect($objQuery->getSql("*", $this->table));
     if (strlen($this->order) == 0) {
         if (GC_Utils_Ex::isFrontFunction()) {
             $this->setOrder("device_name DESC");
         } else {
             $this->setOrder("device_id DESC");
         }
     }
     return $objQuery->getAll($this->getSql(2), $this->arrWhereVal);
 }