Je galère à afficher les catégories et sous-catégories dans mon menu dynamique en récupérant l'id. Si vous pouvez m'apporter votre aide
L'objectif c'est c'est de faire apparaitre les annonces par catégories. Mes tables annonces, images, catégories et villes étant liées comme le montre la photo: https://imgur.com/a/KCiYnPG
Je cherche à éviter de mélanger les id, sinon le programme attribue à chaque annonce une image qui ne lui appartient pas. Il faut donc que j'intègre les tables annonces, villes, et categories pour l'affichage.
Ce qui me parait logique, voila ce que j'ai fait, mais il me reste le lien pour accueil et titre.
Code : Tout sélectionner
function getAnnonces_byCategory($id_cat){
global $bdd;
$sql_lang = $_SESSION['lang'];
$res = [];
$sql = 'SELECT A.* Except A.id
, C.id as id, C.nom_'.$sql_lang.' AS CATEGORIE
,V.ville_'.$sql_lang.' AS VILLE
FROM annonces A
LEFT JOIN categories C ON C.id = A.id_categorie
LEFT JOIN villes V ON V.id = A.id_ville
WHERE 1 = 1
AND id= :id_cat
';
//pour Accueil et contact
if($id_cat==1 || $id_cat==20){
$sql .= " "; //On ajoute un lien pour accueil et contact, mais comment?
}
//Pour les autres catégories
if(1< $id_cat< 20){
$sql .= $sql .= " AND id = ".$id_cat." ";
}
//on fini par ajouter le order by
$sql .= " ORDER BY created_date DESC" ;
try {
$req = $bdd->prepare($sql);
$req->execute();
$res = $req->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
echo "Erreur dans la requête " . $sql;
}
// le temps des tests pour voir le résultat
return $res;
}
function getAnnonces_Images_byCategory($id_cat){
global $bdd;
$annonces = getAnnonces_byCategory($id_cat);
$images = getImagesAnnonces();
$res = [];
foreach ($annonces as $R) {
$res[$R['id']] = $R;
$imgs = !empty($images[$R['id']]) ? $images[$R['id']] : NULL;
if(!empty($imgs)){
foreach($imgs as $I){
$res[$R['id']]['images'][] = !empty($I['IMG']) ? $I['IMG'] : null;
}
}else{
$res[$R['id']]['images'] = null;
}
}
return $res;
}
Code : Tout sélectionner
<?php
$id_cat = !empty($_GET['id']) ? trim($_GET['id']) : null;
$annonces = getAnnonces_Images_byCategory($id_cat);
foreach ($annonces as $annonce) {
echo '<div class="annoncepubs">';
$images = !empty($annonce['images']) ? $annonce['images'] : ['/no_image.png']; // array
if (!empty($images)) {
//boucle sur les images
echo'<div class="container">';
echo ' <div class="slider" >';
foreach ($images as $img) {
echo '<img class ="active" style="width:90px; height:90px;" src="' . $img . '">';
}
echo "</div>"; // fin div slider .
echo '<div class="cont-btn" >';
echo ' <div class="btn-nav left" > <';
echo " </div>";
echo ' <div class="btn-nav right" > >';
echo " </div>";
echo "</div>";
echo "</div>"; // fin div container
}
echo "<span class='category'>" . $annonce['CATEGORIE'] . "</span>";
echo "<span class='title'>" . $annonce['titre'] . "</span>";
echo "<span class='comment'>" . $annonce['description'] . "</span>";
echo "<span class='price'>" . $annonce['prix'] . "</span>";
echo "<span class='date'>" . $annonce['created_date'] . "</span>";
echo "</div>"; // fin div annoncepubs
}
?>