本文整理汇总了PHP中SC_Utils_Ex::repeatStrWithSeparator方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Utils_Ex::repeatStrWithSeparator方法的具体用法?PHP SC_Utils_Ex::repeatStrWithSeparator怎么用?PHP SC_Utils_Ex::repeatStrWithSeparator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Utils_Ex
的用法示例。
在下文中一共展示了SC_Utils_Ex::repeatStrWithSeparator方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getProductStatus
/**
* 商品IDをキーにした, 商品ステータスIDの配列を取得する.
*
* @param array 商品ID の配列
* @return array 商品IDをキーにした商品ステータスIDの配列
*/
function getProductStatus($productIds)
{
if (empty($productIds)) {
return array();
}
$objQuery =& SC_Query_Ex::getSingletonInstance();
$cols = 'product_id, product_status_id';
$from = 'dtb_product_status';
$where = 'del_flg = 0 AND product_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', count($productIds)) . ')';
$productStatus = $objQuery->select($cols, $from, $where, $productIds);
$results = array();
foreach ($productStatus as $status) {
$results[$status['product_id']][] = $status['product_status_id'];
}
return $results;
}
示例2: buildQuery
/**
* クエリを構築する.
*
* 検索条件のキーに応じた WHERE 句と, クエリパラメーターを構築する.
* クエリパラメーターは, SC_FormParam の入力値から取得する.
*
* 構築内容は, 引数の $where 及び $arrValues にそれぞれ追加される.
*
* @param string $key 検索条件のキー
* @param string $where 構築する WHERE 句
* @param array $arrValues 構築するクエリパラメーター
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @param SC_FormParam $objDb SC_Helper_DB_Ex インスタンス
* @return void
*/
function buildQuery($key, &$where, &$arrValues, &$objFormParam, &$objDb)
{
$dbFactory = SC_DB_DBFactory_Ex::getInstance();
switch ($key) {
// 商品ID
case 'search_product_id':
$where .= ' AND product_id = ?';
$arrValues[] = sprintf('%d', $objFormParam->getValue($key));
break;
// 商品コード
// 商品コード
case 'search_product_code':
$where .= ' AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ?)';
$arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key));
break;
// 商品名
// 商品名
case 'search_name':
$where .= ' AND name LIKE ?';
$arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key));
break;
// カテゴリ
// カテゴリ
case 'search_category_id':
list($tmp_where, $tmp_Values) = $objDb->sfGetCatWhere($objFormParam->getValue($key));
if ($tmp_where != '') {
$where .= ' AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE ' . $tmp_where . ')';
$arrValues = array_merge((array) $arrValues, (array) $tmp_Values);
}
break;
// 種別
// 種別
case 'search_status':
$tmp_where = '';
foreach ($objFormParam->getValue($key) as $element) {
if ($element != '') {
if (SC_Utils_Ex::isBlank($tmp_where)) {
$tmp_where .= ' AND (status = ?';
} else {
$tmp_where .= ' OR status = ?';
}
$arrValues[] = $element;
}
}
if (!SC_Utils_Ex::isBlank($tmp_where)) {
$tmp_where .= ')';
$where .= " {$tmp_where} ";
}
break;
// 登録・更新日(開始)
// 登録・更新日(開始)
case 'search_startyear':
$date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_startyear'), $objFormParam->getValue('search_startmonth'), $objFormParam->getValue('search_startday'));
$where .= ' AND update_date >= ?';
$arrValues[] = $date;
break;
// 登録・更新日(終了)
// 登録・更新日(終了)
case 'search_endyear':
$date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_endyear'), $objFormParam->getValue('search_endmonth'), $objFormParam->getValue('search_endday'), true);
$where .= ' AND update_date <= ?';
$arrValues[] = $date;
break;
// 商品ステータス
// 商品ステータス
case 'search_product_statuses':
$arrPartVal = $objFormParam->getValue($key);
$count = count($arrPartVal);
if ($count >= 1) {
$where .= ' ' . 'AND product_id IN (' . ' SELECT product_id FROM dtb_product_status WHERE product_status_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', $count) . ')' . ')';
$arrValues = array_merge($arrValues, $arrPartVal);
}
break;
default:
break;
}
}
示例3: sfGetCatWhere
/**
* カテゴリから商品を検索する場合のWHERE文と値を返す.
*
* @param integer $category_id カテゴリID
* @return array 商品を検索する場合の配列
*/
public function sfGetCatWhere($category_id)
{
// 子カテゴリIDの取得
$arrRet = SC_Helper_DB_Ex::sfGetChildrenArray('dtb_category', 'parent_category_id', 'category_id', $category_id);
$where = 'category_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', count($arrRet)) . ')';
return array($where, $arrRet);
}
示例4: lfIsDbRecordMulti
/**
* 指定されたキーと複数値の有効性のDB確認
*
* @param string $table テーブル名
* @param string $tblkey テーブルキー名
* @param string $keyname フォームキー名
* @param array $item 入力データ配列
* @param string $delimiter 分割文字
* @return boolean true:有効なデータがある false:有効ではない
*/
public function lfIsDbRecordMulti($table, $tblkey, $keyname, $item, $delimiter = ',')
{
if (array_search($keyname, $this->arrFormKeyList) === FALSE) {
return true;
}
if ($item[$keyname] == '') {
return true;
}
$arrItems = explode($delimiter, $item[$keyname]);
//空項目のチェック 1つでも空指定があったら不正とする。
if (array_search('', $arrItems) !== FALSE) {
return false;
}
$count = count($arrItems);
$where = $tblkey . ' IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', $count) . ')';
$objQuery =& SC_Query_Ex::getSingletonInstance();
$db_count = $objQuery->count($table, $where, $arrItems);
if ($count != $db_count) {
return false;
}
return true;
}
示例5: getPaymentsByPrice
/**
* 購入金額に応じた支払方法を取得する.
*
* @param integer $total 購入金額
* @param integer $deliv_id 配送業者ID
* @return array 購入金額に応じた支払方法の配列
*/
function getPaymentsByPrice($total, $deliv_id)
{
$arrPaymentIds = $this->getPayments($deliv_id);
if (SC_Utils_Ex::isBlank($arrPaymentIds)) {
return array();
}
$objQuery =& SC_Query_Ex::getSingletonInstance();
// 削除されていない支払方法を取得
$where = 'del_flg = 0 AND payment_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', count($arrPaymentIds)) . ')';
$objQuery->setOrder('rank DESC');
$payments = $objQuery->select('payment_id, payment_method, rule_max, upper_rule, note, payment_image, charge', 'dtb_payment', $where, $arrPaymentIds);
$arrPayment = array();
foreach ($payments as $data) {
// 下限と上限が設定されている
if (strlen($data['rule_max']) != 0 && strlen($data['upper_rule']) != 0) {
if ($data['rule_max'] <= $total && $data['upper_rule'] >= $total) {
$arrPayment[] = $data;
}
} elseif (strlen($data['rule_max']) != 0) {
if ($data['rule_max'] <= $total) {
$arrPayment[] = $data;
}
} elseif (strlen($data['upper_rule']) != 0) {
if ($data['upper_rule'] >= $total) {
$arrPayment[] = $data;
}
} else {
$arrPayment[] = $data;
}
}
return $arrPayment;
}
示例6: applyValuesToProducts
/**
* 複数商品に追加項目値をセットする。
*
* @param array $arrProducts 複数商品配列のポインタ
*/
function applyValuesToProducts(&$arrProducts)
{
$arrProductIds = array();
$arrPoints = array();
if (is_array($arrProducts)) {
foreach ($arrProducts as &$arrPoint) {
$product_id = $arrPoint['product_id'];
$arrPoints[$product_id] =& $arrPoint;
$arrProductIds[] = $product_id;
}
}
if (!empty($arrProductIds)) {
$objQuery = SC_Query_Ex::getSingletonInstance();
//まず項目情報を全商品にセットする
$table = 'plg_apc_dtb_columns';
$arrColumns = $objQuery->select('*', $table);
foreach ($arrColumns as $arrColumn) {
foreach ($arrPoints as $product_id => &$arrPoint) {
$arrPoints[$product_id][PAPC_PREFIX . $arrColumn['column_id']] = $arrColumn;
}
}
//次に商品情報をセットする
$table = <<<EOSQL
plg_apc_dtb_values AS val
INNER JOIN plg_apc_dtb_columns columns
ON val.column_id = columns.column_id
EOSQL;
$where = sprintf('product_id IN (%s)', SC_Utils_Ex::repeatStrWithSeparator('?', count($arrProductIds)));
$arrWhereValues = $arrProductIds;
$arrValues = $objQuery->select('*', $table, $where, $arrWhereValues);
foreach ($arrValues as $arrValue) {
$product_id = $arrValue['product_id'];
if (!empty($arrPoints[$product_id])) {
$arrPoints[$product_id][PAPC_PREFIX . $arrValue['column_id']] = $arrValue;
}
}
}
}