Как безопасно написать запрос SELECT Joomla с условием IN в предложении WHERE?

0

С регулярной командой mysql мы используем SELECT foo WHERE bar IN (a, b, c). Я ищу, как это сделать в базе данных joomla select?

Я попробовал это:

$query
    ->select(array('a.id', 'a.promo', 'a.harga', 'a.dp', 'a.image', 'a.teaser' , 'b.title','b.created'))
    ->from($db->quoteName('#__cck_store_form_paket_trip', 'a'))
    ->join('LEFT', $db->quoteName('#__content', 'b') . ' ON (' . $db->quoteName('a.id') . ' = ' . $db->quoteName('b.id') . ')')
    ->where($db->quoteName('b.catid') . ' IN '.$db->quote(.'(13,14,15)'.)
    ->order($db->quoteName($orderby) . ' '.$order)
	->setLimit($limit,$start)
	;

Итак, ребята... любая помощь, пожалуйста?

Теги:
joomla3.0

1 ответ

0
Лучший ответ

Функция $db-> quote принимает значение или массив. Вы можете попробовать под кодом с функцией implode -

вместо этого -

$db->quote(.'(13,14,15)'.)

Попробуй это -

$db->quote(array(13,14,15))

и окончательный запрос будет -

$query
    ->select(array('a.id', 'a.promo', 'a.harga', 'a.dp', 'a.image', 'a.teaser' , 'b.title','b.created'))
    ->from($db->quoteName('#__cck_store_form_paket_trip', 'a'))
    ->join('LEFT', $db->quoteName('#__content', 'b') . ' ON (' . $db->quoteName('a.id') . ' = ' . $db->quoteName('b.id') . ')')
    ->where($db->quoteName('b.catid') . ' IN (' . implode(',', $db->quote(array(13,14,15))) . ')' )
    ->order($db->quoteName($orderby) . ' '.$order)
    ->setLimit($limit,$start)
    ;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню