私は、mysql テーブル「ブログ」がある小さなタスクを持っています。列「ID_CAT」が含まれています。ID_CAT の各フィールドには、"22,44,33,55" のように、1 つの記事のカテゴリの異なる値が含まれています。選択したカテゴリに応じて、ブログの投稿をフィルタリングしたい。ID_CAT の選択を URL に渡し、含まれているページの GET メソッドをそのように渡します
<a class="rotated_link" href="?cat='.$categorie->getIDCategorie().'">'.$categorie->getNomCategorie().'</a>
次に、そのように含まれるページ
$id_categorie = $_GET["cat"];
if (isset($id_categorie)) {
foreach(Article::getAllArticlebycategorie($id_categorie) as $all){
$article= new Article($all->ID_BLOG);
$img=Image::getImageByArticle($article->getIDarticle());
$tblCat=explode(',',$article->getIDCategorie());
echo '<li class="li_blog_post">';
echo'<img class="img_post_mini" src="img/file/'.$img.'" style="width:100%; height:150px; border:1PX solid #9D9D9D;" />';
echo'<span class="post_title0">'.$article->getTitlearticle().'</span>';
echo'<span class="tag_post"><img src="img/tag.png" style="width:16px; height:16px;"/>';
foreach($tblCat as $catt){
$categoriea = new Categorie($catt);
echo '<a class="tag_lable" href="">'.$categoriea->getNomCategorie().'</a> </span>';
}
echo'<p class="post_prev">'.substr($article->getArticle(), 0, 410).' ...</p>';
echo'<span class="date">le '.$article->getDatearticle().'</span> <span class="view_more"><a class="test" href="?article='.$article->getIDarticle().'">voire les détails</a></span>';
echo '</li>';
}
}
問題は、たとえば ID_CAT=4 を選択した場合、関数 getAllArticlebycategorie は、列 ID_CAT (4,33,50) の最初の値が 4 の場合にのみ投稿を返します-> 選択された (3,4,10)-> ではありませんを選択しました。関数 :
public static function getAllArticlebycategorie($id_categorie){
global $db;
$req = $db->prepare('SELECT * FROM blog WHERE ID_CAT='.$id_categorie);
$req->execute();
return $req->fetchAll(PDO::FETCH_OBJ);
}