在存在特定条件时回显数组的结果



我有一个正在生成结果的查询:

SELECT 2article.idarticle, 2article.a_idcategory, 2article.a_name, 
2article.a_desc, 2article.a_content, 2article.a_featured, 2article.a_verified, 
2category.cat_name, 2file.file_name, 2file.file_desc, 2file.file_loc, 
2image.i_name, 2image.i_desc, 2image.i_loc, 2link.l_url, 2link.l_name, 2link.l_desc
FROM 2article
LEFT JOIN 2category on 2article.a_idcategory = 2category.idcategory
LEFT JOIN 2file ON 2article.a_idfile = 2file.idfile
LEFT JOIN 2image ON 2article.a_idimage = 2image.idimage
LEFT JOIN 2link ON 2article.a_idlink = 2link.idlink
$stmt->prepare($qry_art);
$result = $db->query($qry_art);
$row = $result->fetch_array();
$stmt->execute();

在存在特定条件的情况下,我想回显此查询的各种结果。像这样的东西(它不起作用,但我希望它能帮助解释我想做什么)

if(isset($row['a_idcategory']) && $row['a_idcategory'] = 9) do {
echo $row['a_name'].'<br>';
} while($row = $result->fetch_array());

换句话说,我只希望在对应的$row[a_idcategory']等于9的情况下/同时,$row[a_name']得到响应。到目前为止,我所尝试的一切都会返回所有的"a_name"结果。我不知所措,我尝试了很多方法。我甚至不确定我想做的事情是否可能。如有任何帮助,我们将不胜感激。干杯

您的if条件错误,请将if放入while循环中。

if(isset($row['a_idcategory']) && $row['a_idcategory'] = 9)
                                                       ^

应该是

while($row = $result->fetch_array()){
    if($row['a_idcategory'] == 9) {
        echo $row['a_name'].'<br>';
    } 
}

=是赋值运算符==是比较运算符。

更新

您也可以在sql查询中使用此筛选器

....LEFT JOIN 2link ON 2article.a_idlink = 2link.idlink
WHERE 2article.a_idcategory = 9

最新更新