1

結果を生成しているクエリがあります。

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'] をエコーし​​たいということです。私は途方に暮れていて、多くのことを試しました。私がやりたいことが可能かどうかさえわかりません。どんな助けでも大歓迎です。乾杯

4

1 に答える 1

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
于 2013-06-23T05:07:59.043 に答える