j'ai un problème avec une fonction que j'ai crée et je comprends pas pourquoi (deux jours la dessus) 🙈
Je n'arrive pas a afficher mes département dans une liste de station (clients),
J'ai créé une jointure que j'ai testé dans PHP MY SQL (elle fais le boulot), donc je pense qu'il s'agit de ma fonction qui est bancale ou une boucle Foreach manquant dans la page post.php.
La structure est la suivante :
Une page post.php (publie la liste des stations avec un champ titre et régions (qui ne s'affiche pas puisqu'il n'y a pas de contenu récupéré), une icône pour modifier la station et un autre pour la supprimer.
Un fichier admin.php (avec toutes mes fonctions, création de station, modification de station, affichage liste des stations, etc...
Une base de données avec les deux tables dans laquelle je récupère la colonne TITRE (nom de la station) dans la table AP_STATION et une autre AP-REGION dans laquelle je récupère le nom de la région dans la colonne TITRE (aussi) ces deux tables sont jointes via ma requête préparée dans mon fichier admin.php avec ma fonction REGIONS.
J'ai testé avec var_dump la fonction réponse array
Enfin bref je n'y comprends plus rien.
Merci de votre aide.
LA FONCTION :
<?php
function regions() {
global $bdd;
$id_region = (int)$_GET["id_region"];
$regions = $bdd->prepare("SELECT ap_station.titre, ap_station.id_region, ap_region.titre FROM ap_station INNER JOIN ap_region ON ap_station.id_region = ap_region.id");
$regions->execute([$id_region]);
$regions = $regions->fetchAll();
return $regions;
}
?>
LA PAGE LISTE DES STATIONS (ou doit apparaitre le nom de la région à droite du nom de la station ) :
La requete réalise un select dans les deux tables ( une avec la liste des stations et un ID_Region qui me sert à la synchro avec la table AP_REGION via la colonne ID.
Je ne comprends le terme valorisé ?
J'ai une autre piste peut-être, je m'explique :
J'ai une fonction POSTS pour afficher la liste des stations (sur la même page post.php) je me demande s'il ne serait pas plus simple de modifier cette requête pour faire la même chose ?
Requête dans le fichier admin.php elle aussi.
LA FONCTION en question :
function posts() {
global $bdd;
$posts = $bdd->query("SELECT * FROM ap_station ORDER BY id DESC");
$posts = $posts->fetchAll();
return $posts;
}
Je te confirme le var_dump de $id_region retourne NULL
Je ne vois pas la méthode pour intégrer un marqueur avec un INNER JOIN dans le SELECT (avec le WHERE c'est mort visiblement ) genre WHERE ap_station.id_region =? ) à la fin du code existant. Je pensais pas qu'il était si compliqué de faire une requête avec jointure. 🥵
Donc déjà si le dump de ta variable retourne null, elle ne sert à rien tant qu'elle n'est pas valorisée. Faut revoir en amont la transmission.
Le where est indépendant du fait que ce soit une requête avec ou sans jointure. Le where c'est ce que l'on appelle une clause ... c'est à dire que tu cherches quelque chose suivant une condition.
Je ne peux que te conseiller de regarder comment mettre une clause where et des marqueurs.
Il y a des tas de tuto pour cela mais juste un lien.
Non, c'est tout à fait possible de mettre un where et heureusement car sinon ta condition sur l'identifiant de région ne pourrait jamais être mise en oeuvre.
As tu traité le fait que ta variable est null et donc en l'état ne sert à rien ? Aurelien.C t'a indiqué l'erreur.
Pour ma part, je pense t'avoir donné les informations pour réussir ton développement et à part faire le code à ta place - ce que je me refuse car ce n'est ni ainsi que l'on se forme ni le but de ce forum - je ne vois plus grand chose à ajouter.
j'ai revu ma copie en suppriment ma fonction REGIONS inutile, j'ai juste modifié ma fonction POSTS en imbriquant un 2eme SELECT comme ci-dessous et ajouter à ma page POSTS.PHP le l'alias region en clés de mon tableau POSTS ;-)
Merci de votre aide, désolé pour le post en double 🙈, je n'ai pas encore terminer le projet j'ai encore plein de défit a relever hihihi.
function posts() {
global $bdd;
$posts = $bdd->query("SELECT id, titre, id_region, (SELECT titre FROM ap_region WHERE ap_region.id = ap_station.id_region) AS region FROM ap_station ORDER BY id DESC");
$posts = $posts->fetchAll();
return $posts;
}
Function retourne rien
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP