Bonjour, je sollicite votre aide pour afficher une annonce à partir de son id. Si quelqu'un peut me guider sur là où ça bloque :)

Mes fonctions sont séparées comme mes tables (annonces, categories, villes et images_annonces), pour éviter de tout mélanger. Je laisse donc comme ça.

MON PROBLEME c'est que sur la page single.php rien ne s'affiche.
Voici le lien auquel renvoie la page:

echo '<div class="annoncepubs" > <a class="maquette" href="single.php?id=$anounce["id"]" >';

Le code des fonctions:

<?php

function getAnnnonce($idad){
  global $bdd;
  $sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en','es']) ))? $_SESSION['lang'] : 'fr';
  $sql = ' SELECT  A.*
                  ,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 A.id= :idad
            ';
  try {
    $req = $bdd->prepare($sql);
    $req->execute( array(':idad'=>$idad) );
    $res = $req->fetch();
    var_dump($res);
  } catch (Exception $e) {
    echo "Erreur dans la requête " . $sql;
  }
  // le temps des tests pour voir le résultat
  return $res;
}

function getImagesAnnonces($idad){
  global $bdd;
  $sql = "SELECT id_annonce,filepath as IMG
      FROM images_annonces
      WHERE id_annonce= :idad";
  try {
    $req = $bdd->prepare($sql);
    $req->execute( array(':idad'=>$idad) );
    $res = $req->fetch(PDO::FETCH_GROUP);
    var_dump($res);

  } catch (Exception $e) {
    echo "Erreur dans la requête " . $sql;
  }
  // le temps des tests pour voir le résultat
  return $res;
}

function afficherArticle($idad){

  $annonce = getAnnnonce($idad);
  $images = getImagesAnnonces($idad);

  $res = [];
    $res[$annonce['id']] = $annonce;
    $imgs = !empty($images[$annonce['id']]) ? $images[$annonce['id']] : NULL;
    if(!empty($imgs)){
      foreach($imgs as $I){
        $res[$annonce['id']]['images'][] = !empty($I['IMG']) ? $I['IMG'] : null;
      }
    }else{
        $res[$annonce['id']]['images'] = null;
    }

  return $res;
}
?

Les vardumps: On peut voir que dans la page single.php, ça nous renvoie une image null:

//fonction getAnnonce
array (size=12)
  'id' => string '2' (length=1)
  'created_by_member' => string '0' (length=1)
  'id_categorie' => string '405' (length=3)
  'pseudo' => string 'essai2' (length=6)
  'telephone' => string '21256' (length=5)
  'email' => string 'essai2@g.fr' (length=11)
  'titre' => string 'Vente d'un ordinateur' (length=21)
  'description' => string 'Je vends des ordinateurs de bureaux' (length=35)
  'prix' => string '25241' (length=5)
  'created_date' => string '2021-12-28' (length=10)
  'created_date_hour' => string '2021-12-28 14:23:38' (length=19)
  'CATEGORIE' => string 'Ordinateurs de Bureaux' (length=22)

//Fonction getimages

C:\wamp64\www\Projetsite\singleaffichage.php:36:
array (size=4)
  'id_annonce' => string '2' (length=1)
  0 => string '2' (length=1)
  'IMG' => string 'pictures/ordi.jpg' (length=17)
  1 => string 'pictures/ordi.jpg' (length=17)

//page single

C:\wamp64\www\Projetsite\single.php:33:
array (size=1)
  2 =>
    array (size=13)
      'id' => string '2' (length=1)
      'created_by_member' => string '0' (length=1)
      'id_categorie' => string '405' (length=3)
      'pseudo' => string 'essai2' (length=6)
      'telephone' => string '21256' (length=5)
      'email' => string 'essai2@g.fr' (length=11)
      'titre' => string 'Vente d'un ordinateur' (length=21)
      'description' => string 'Je vends des ordinateurs de bureaux' (length=35)
      'prix' => string '25241' (length=5)
      'created_date' => string '2021-12-28' (length=10)
      'created_date_hour' => string '2021-12-28 14:23:38' (length=19)
      'CATEGORIE' => string 'Ordinateurs de Bureaux' (length=22)
      'images' => null

La page single.php qui nous donnent les erreurs suivantes:
Undefined index CATEGORIE, même chosepour les titres, date, etc...

if(isset($_GET['id'])){

  $idad = !empty($_GET['id']) ? trim($_GET['id']) : null;

  $anouncement= afficherArticle($idad);
  var_dump($anouncement);

        echo '<div class="annoncepubs" >';

        $images = !empty($anouncement['images']) ? $anouncement['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'>" . $anouncement['CATEGORIE'] . "</span>";
        echo "<span class='title'>" . $anouncement['titre'] . "</span>";
        echo "<span class='price'>" . $anouncement['prix'] . "</span>";
        echo "<span class='date'>" . $anouncement['created_date'] . "</span>";

        echo "</div>"; // fin div annoncepubs 

}

Aucune réponse