Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从Joomla中的组件菜单项获取MySQL查询结果,并使用foreach where子句进行优化?_Php_Mysql_Joomla_Components_Where - Fatal编程技术网

Php 如何从Joomla中的组件菜单项获取MySQL查询结果,并使用foreach where子句进行优化?

Php 如何从Joomla中的组件菜单项获取MySQL查询结果,并使用foreach where子句进行优化?,php,mysql,joomla,components,where,Php,Mysql,Joomla,Components,Where,我有自定义组件J 2.5。在该组件的菜单中,我还有sql字段: <field name="title" type="sql" default="10" label="აირჩიეთ კატეგორია" multiple="multiple" query="SELECT id AS value, title FROM #__deals_categories" /> $category的输出为数组: Array ( [0] =>

我有自定义组件J 2.5。在该组件的菜单中,我还有sql字段:

<field
    name="title"
    type="sql"
    default="10"
    label="აირჩიეთ კატეგორია"
    multiple="multiple"
    query="SELECT id AS value, title FROM #__deals_categories"
/>
$category的输出为数组:

Array ( [0] => 20 [1] => 23 [2] => 33 [3] => 41 [4] => 49 )
这些是数据库中的类别ID。 此外,我还有一个函数可以从这些类别中获取内容。当我有一个类别id时一切都正常,但当我有多个类别id时,例如:2、4、5等,我无法从mysql获取数据。我试图给出where子句,但有一些错误我无法理解

在下文中,我尝试使用where子句并从许多不同类别获取数据:

if ($category) {
    print_r ($category);
    foreach ($category as $cat){
        $query->where('d.category_id = ' . (int) $cat);
        echo $cat.'<br>';
    }
}
if($category){
印刷品(类别);
foreach($类别为$cat){
$query->where('d.category_id='(int)$cat);
echo$cat.“
”; } }
您应该在中使用
,而不是
=
条件-

$category = (array) $category;
jimport('joomla.utilities.arrayhelper');
JArrayHelper::toInteger($category);
if(!empty($category)){
    $query->where('d.category_id IN(' . implode(',', $category) . ')');
}

使用“$query->where”语句所做的是向查询中添加“和”SQL条件。因此,如果一个项目只属于一个类别,则没有任何项目匹配。 你有两个选择: 1-由Irfan声明:用于(类别1,类别2,…) 2-使用“或”组成查询:

(d.category_id = category1) OR (d.category_id = category2) ...

@Gocha:不确定出了什么问题,但可能会更新。代码将有所帮助。@Gocha:为该问题创建另一个问题。
(d.category_id = category1) OR (d.category_id = category2) ...