我有一个产生结果的查询:
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_name']在/相应的$ row ['a_idcategory']等于9时被回显。到目前为止,我尝试的所有内容都会带回所有'a_name'结果。我很茫然,我尝试过很多东西。我甚至不确定我想做什么是可能的。任何帮助将不胜感激。 干杯
答案 0 :(得分:2)
您的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