本文整理汇总了PHP中SC_Query::setWhere方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Query::setWhere方法的具体用法?PHP SC_Query::setWhere怎么用?PHP SC_Query::setWhere使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Query
的用法示例。
在下文中一共展示了SC_Query::setWhere方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: lfGetProductsAllclass
/**
* 商品情報を取得する(vw_products_allclass使用)
*
* @param SC_Query $objQuery DB操作クラス
* @return array $arrProduct 取得結果を配列で返す
*/
function lfGetProductsAllclass(&$objQuery)
{
// --- 商品一覧の取得
$objQuery->setWhere('del_flg = 0 AND status = 1');
$objQuery->setOrder('product_id');
$objProduct = new SC_Product_Ex();
$arrProductLsit = $objProduct->lists($objQuery);
// 各商品のカテゴリIDとランクの取得
$arrProducts = array();
foreach ($arrProductLsit as $key => $val) {
$sql = '';
$sql .= ' SELECT';
$sql .= ' T1.category_id,';
$sql .= ' T1.rank AS product_rank,';
$sql .= ' T2.rank AS category_rank';
$sql .= ' FROM';
$sql .= ' dtb_product_categories AS T1';
$sql .= ' LEFT JOIN';
$sql .= ' dtb_category AS T2';
$sql .= ' ON';
$sql .= ' T1.category_id = T2.category_id';
$sql .= ' WHERE';
$sql .= ' product_id = ?';
$arrCategory = $objQuery->getAll($sql, array($val['product_id']));
if (!empty($arrCategory)) {
$arrProducts[$key] = array_merge($val, $arrCategory[0]);
}
}
// 税込金額を設定する
SC_Product_Ex::setIncTaxToProducts($arrProducts);
return $arrProducts;
}
示例2: getListByProductIds
/**
* 商品IDを指定し、商品一覧を取得する
*
* SC_Query::setOrder() や SC_Query::setLimitOffset() を設定して, 商品一覧
* の配列を取得する.
* FIXME: 呼び出し元で設定した、SC_Query::setWhere() も有効に扱いたい。
*
* @param SC_Query $objQuery SC_Query インスタンス
* @param array $arrProductId 商品ID
* @return array 商品一覧の配列 (キー: 商品ID)
*/
function getListByProductIds(&$objQuery, $arrProductId = array())
{
if (empty($arrProductId)) {
return array();
}
$where = 'alldtl.product_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', count($arrProductId)) . ')';
$where .= ' AND alldtl.del_flg = 0';
$objQuery->setWhere($where, $arrProductId);
$arrProducts = $this->lists($objQuery);
// 配列のキーを商品IDに
$arrTmp = array();
foreach ($arrProducts as $arrProduct) {
$arrTmp[$arrProduct['product_id']] = $arrProduct;
}
$arrProducts =& $arrTmp;
unset($arrTmp);
// SC_Query::setOrder() の指定がない場合、$arrProductId で指定された商品IDの順に配列要素を並び替え
if (strlen($objQuery->order) === 0) {
$arrTmp = array();
foreach ($arrProductId as $product_id) {
$arrTmp[$product_id] = $arrProducts[$product_id];
}
$arrProducts =& $arrTmp;
unset($arrTmp);
}
// 税込金額を設定する
SC_Product_Ex::setIncTaxToProducts($arrProducts);
return $arrProducts;
}
示例3: getProductsClassByQuery
/**
* SC_Query インスタンスに設定された検索条件を使用して商品規格を取得する.
*
* @param SC_Query $objQuery SC_Queryインスタンス
* @param array $params 検索パラメーターの配列
* @return array 商品規格の配列
*/
function getProductsClassByQuery(&$objQuery, $params)
{
// 末端の規格を取得
$col = <<<__EOS__
T1.product_id,
T1.stock,
T1.stock_unlimited,
T1.sale_limit,
T1.price01,
T1.price02,
T1.point_rate,
T1.product_code,
T1.product_class_id,
T1.del_flg,
T1.product_type_id,
T1.down_filename,
T1.down_realfilename,
T2.class_combination_id,
T2.parent_class_combination_id,
T2.classcategory_id,
T2.level,
T3.name AS classcategory_name,
T3.rank,
T4.name AS class_name,
T4.class_id
__EOS__;
$table = <<<__EOS__
dtb_products_class T1
LEFT JOIN dtb_class_combination T2
ON T1.class_combination_id = T2.class_combination_id
LEFT JOIN dtb_classcategory T3
ON T2.classcategory_id = T3.classcategory_id
LEFT JOIN dtb_class T4
ON T3.class_id = T4.class_id
__EOS__;
$objQuery->setOrder('T3.rank DESC');
// XXX
$arrRet = $objQuery->select($col, $table, "", $params);
$levels = array();
$parents = array();
foreach ($arrRet as $rows) {
$levels[] = $rows['level'];
$parents[] = $rows['parent_class_combination_id'];
}
$level = max($levels);
$parentsClass = array();
// 階層分の親を取得
for ($i = 0; $i < $level - 1; $i++) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->setWhere('T1.class_combination_id IN (' . implode(', ', array_pad(array(), count($parents), '?')) . ')');
$col = <<<__EOS__
T1.class_combination_id,
T1.classcategory_id,
T1.parent_class_combination_id,
T1.level,
T2.name AS classcategory_name,
T2.rank,
T3.name AS class_name,
T3.class_id
__EOS__;
$table = <<<__EOS__
dtb_class_combination T1
LEFT JOIN dtb_classcategory T2
ON T1.classcategory_id = T2.classcategory_id
LEFT JOIN dtb_class T3
ON T2.class_id = T3.class_id
__EOS__;
$objQuery->setOrder('T2.rank DESC');
// XXX
$arrParents = $objQuery->select($col, $table, "", $parents);
foreach ($arrParents as $rows) {
$parents[] = $rows['parent_class_combination_id'];
foreach ($arrRet as $child) {
if ($child['parent_class_combination_id'] == $rows['class_combination_id']) {
$rows['product_id'] = $child['product_id'];
}
}
$tmpParents[] = $rows;
}
$parentsClass = array_merge($parentsClass, $tmpParents);
}
// 末端から枝を作成
$tmpClass = array_merge($arrRet, $parentsClass);
foreach ($tmpClass as $val) {
$val['class_id' . $val['level']] = $val['class_id'];
$val['class_name' . $val['level']] = $val['class_name'];
$val['classcategory_name' . $val['level']] = $val['classcategory_name'];
$val['classcategory_id' . $val['level']] = $val['classcategory_id'];
$arrProductsClass[] = $val;
}
return $arrProductsClass;
}