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
}