本文整理汇总了PHP中Eccube\Framework\Util\Utils::repeatStrWithSeparator方法的典型用法代码示例。如果您正苦于以下问题:PHP Utils::repeatStrWithSeparator方法的具体用法?PHP Utils::repeatStrWithSeparator怎么用?PHP Utils::repeatStrWithSeparator使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Eccube\Framework\Util\Utils
的用法示例。
在下文中一共展示了Utils::repeatStrWithSeparator方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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 (' . Utils::repeatStrWithSeparator('?', $count) . ')';
$objQuery = Application::alias('eccube.query');
$db_count = $objQuery->count($table, $where, $arrItems);
if ($count != $db_count) {
return false;
}
return true;
}
示例2: getProductStatus
/**
* 商品IDをキーにした, 商品ステータスIDの配列を取得する.
*
* @param array 商品ID の配列
* @return array 商品IDをキーにした商品ステータスIDの配列
*/
public function getProductStatus($productIds)
{
if (empty($productIds)) {
return array();
}
/* @var $objQuery Query */
$objQuery = Application::alias('eccube.query');
$cols = 'product_id, product_status_id';
$from = 'dtb_product_status';
$where = 'del_flg = 0 AND product_id IN (' . Utils::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;
}
示例3: buildQuery
/**
* クエリを構築する.
*
* 検索条件のキーに応じた WHERE 句と, クエリパラメーターを構築する.
* クエリパラメーターは, FormParam の入力値から取得する.
*
* 構築内容は, 引数の $where 及び $arrValues にそれぞれ追加される.
*
* @param string $key 検索条件のキー
* @param string $where 構築する WHERE 句
* @param array $arrValues 構築するクエリパラメーター
* @param FormParam $objFormParam FormParam インスタンス
* @param FormParam $objDb DbHelper インスタンス
* @return void
*/
public function buildQuery($key, &$where, &$arrValues, &$objFormParam, &$objDb)
{
/* @var $dbFactory DBFactory */
$dbFactory = Application::alias('eccube.db.factory');
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 ? AND del_flg = 0)';
$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->getCatWhere($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 (Utils::isBlank($tmp_where)) {
$tmp_where .= ' AND (status = ?';
} else {
$tmp_where .= ' OR status = ?';
}
$arrValues[] = $element;
}
}
if (!Utils::isBlank($tmp_where)) {
$tmp_where .= ')';
$where .= " {$tmp_where} ";
}
break;
// 登録・更新日(開始)
// 登録・更新日(開始)
case 'search_startyear':
$date = Utils::sfGetTimestamp($objFormParam->getValue('search_startyear'), $objFormParam->getValue('search_startmonth'), $objFormParam->getValue('search_startday'));
$where .= ' AND update_date >= ?';
$arrValues[] = $date;
break;
// 登録・更新日(終了)
// 登録・更新日(終了)
case 'search_endyear':
$date = Utils::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 (' . Utils::repeatStrWithSeparator('?', $count) . ')' . ')';
$arrValues = array_merge($arrValues, $arrPartVal);
}
break;
default:
break;
}
}
示例4: getCatWhere
/**
* カテゴリから商品を検索する場合のWHERE文と値を返す.
*
* @param integer $category_id カテゴリID
* @return array 商品を検索する場合の配列
*/
public function getCatWhere($category_id)
{
// 子カテゴリIDの取得
$arrRet = $this->getChildrenArray('dtb_category', 'parent_category_id', 'category_id', $category_id);
$where = 'category_id IN (' . Utils::repeatStrWithSeparator('?', count($arrRet)) . ')';
return array($where, $arrRet);
}