переменная не работает в where clause php joomla

У меня есть функция, и моя функция работает хорошо, только я этого не понимаю:

<?php // $category output is 23 when I echo $category; and there is no records ->where('d.category_id = ' . (int) $category) // also this method not work ->where('d.category_id = ' . $category) // but this method works ->where('d.category_id = 23') ?> 

это полный код:

 $category = $params->get('title'); //echo $category; public static function getSuggested($category) { $db = JFactory::getDBO(); $query = $db->getQuery(true); //$now = $jdate->toSql(); //$nullDate = $db->quote($db->getNullDate()); $query->select('d.*'); $query->from('#__deals_deals AS d'); $query->select('c.title AS category_title'); $query->join('LEFT', '#__deals_categories AS c ON c.id = d.category_id') ->where('(d.is_market = 0 AND d.state = 1)','AND') ->where('d.category_id = 23') ->order('id DESC'); //$query->where('(d.publish_up = ' . $nullDate . ' OR d.publish_up <= ' . $query->quote($now) . ')'); //$query->where('(d.publish_down = ' . $nullDate . ' OR d.publish_down >= ' . $query->quote($now) . ')'); $db->setQuery($query,0,10); $results = $db->loadObjectList(); return $results; } 

эта функция работает только для получения данных категории. это модуль joomla, и эта функция находится в файле helper.php в файле default.php. Я получаю некоторые данные из этой функции.

Я нашел решение:

Добавить в mod_spected_deals.php

 $category = (int) $params->get('fieldvalue'); 

тогда:

 $results = modsuggested_dealsHelper::getSuggested($category); 

Я нашел soluton для этого вопроса:

в моей функции I Добавить параметр $ category

 public static function getSuggested($category) {...} 

в mod_spected_deals.php Я добавляю код:

 $category = $params->get('title'); 

то это код (он уже был здесь).

 $results = modsuggested_dealsHelper::getSuggested($category); 

Ошибка, которую вы делаете, заключается в том, что вы определяете значение переменной вне функции, но вызываете переменную внутри нее. Если ваш класс не является абстрактным классом, вы можете использовать категорию $this->category или если ваш класс является абстрактным классом, то используйте переменную $ category внутри функции, подобной этой

 public static function getSuggested() { $module = JModuleHelper::getModule('mod_yourmodulename'); $catid = new JRegistry($module->params); $category = (int) $catid['title']; $db = JFactory::getDBO(); $query = $db->getQuery(true); //$now = $jdate->toSql(); //$nullDate = $db->quote($db->getNullDate()); $query->select('d.*'); $query->from('#__deals_deals AS d'); $query->select('c.title AS category_title'); $query->join('LEFT', '#__deals_categories AS c ON c.id = d.category_id') ->where('(d.is_market = 0 AND d.state = 1)','AND') ->where('d.category_id = '.$category) ->order('id DESC'); //$query->where('(d.publish_up = ' . $nullDate . ' OR d.publish_up <= ' . $query->quote($now) . ')'); //$query->where('(d.publish_down = ' . $nullDate . ' OR d.publish_down >= ' . $query->quote($now) . ')'); $db->setQuery($query,0,10); $results = $db->loadObjectList(); return $results; }