Перейти к содержанию
Lena82

функция с запросом в модель каталога

Рекомендуемые сообщения

Подскажите пожалуйста, что делает эта функция

public function _specialCol( $alias = 'special' ) {
		$sql = "SELECT `price` FROM `" . DB_PREFIX . "product_special` AS `ps` WHERE `ps`.`product_id` = `p`.`product_id` AND `ps`.`customer_group_id` = '" . (int) $this->_customerGroupId() . "' AND ((`ps`.`date_start` = '0000-00-00' OR `ps`.`date_start` < NOW()) AND (`ps`.`date_end` = '0000-00-00' OR `ps`.`date_end` > NOW())) ORDER BY `ps`.`priority` ASC, `ps`.`price` ASC LIMIT 1";
		
		return $alias ? sprintf( "(%s) AS %s", $sql, $alias ) : $sql;
	}

а то как я понимаю, в ней проблема, но не пойму почему...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так это какая-то ошибка или какого рода проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

string sprintf ( string format [, mixed args] )

Возвращает строку, созданную с использованием строки формата format.

Строка формата состоит из директив: обычных символов (за исключением %), которые копируются в результирующую строку, и описатели преобразований, каждый из которых заменяется на один из параметров. Это относится также к fprintf(), sprintf() и printf().

Каждый описатель прреобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они здесь перечислены):

Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью '. См. примеры ниже.

Необязательный описатель выравнивания, определяющий выранивание влево или вправо. По умолчанию выравнивается вправо, - используется для выравнивания влево.

Необязательное число, описатель ширины, определяющий минимальное число символов, которое будет содержать результат этого преобразования.

Необязательный описатель точности, определяющий, сколько десятичных разрядов отображать для чисел с плавающей точкой. Имеет смысл только для числовых данных типа float. (Для форматирования чисел удобно также использовать функцию number_format().)

Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:

% - символ процента. Аргумент не используется.
b - аргумент трактуется как целое и выводится в виде двоичного числа.
c - аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII.
d - аргумент трактуется как целое и выводится в виде десятичного числа со знаком.
e - аргумент трактуется как float и выводится в научной нотации (например 1.2e+2).
u - аргумент трактуется как целое и выводится в виде десятичного числа без знака.
f - аргумент трактуется как float и выводится в виде десятичного числа с плавающей точкой.
o - аргумент трактуется как целое и выводится в виде восьмеричного числа.
s - аргумент трактуется как строка.
x - аргумент трактуется как целое и выводится в виде шестнадцатиричного числа (в нижнем регистре букв).
X - аргумент трактуется как целое и выводится в виде шестнадцатиричного числа (в верхнем регистре букв).

Начиная с PHP 4.0.6 в строке формата поддерживается нумерация и изменение порядка параметров. Например:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так это какая-то ошибка или какого рода проблема?

если она пытается создать дубль поля в таблице бд,, тогда многое проясниться...при выборе опции в фильтре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.