Menu dynamique php
Fabien59
-
Fabien59 -
Fabien59 -
Bonjour,
Je voudrais créer un menu dynamique qui reprendrais les infos de ma base de données automatiquement et afficherai un contenu différent selon l'id renvoyé dans l'URL.
Pour être clair : une table avec un champ "id", un champ "titre" et un champ "contenu".
Dans le menu je voudrais récupérer les titres pour en faire des liens, et qu'ensuite quand on clique on affiche le titre et le contenu de l'entrée correspondante.
J'ai déjà fais quelque chose de similaire dans mon site :
En deux pages, une avec une liste déroulante et un autre qui récupère la valeur id envoyée par le select du formulaire. Seulement, étant une liste déroulante, donc un formulaire, j'envoie le GET et hop c'est parti. Mais avec des liens (donc pas de formulaire) je patauge...
Voici quand même un bout de code que j'ai essayé et qui est sans doute bien à côté de la plaque :
Merci d'avance et bonne fin de journée :)
Je voudrais créer un menu dynamique qui reprendrais les infos de ma base de données automatiquement et afficherai un contenu différent selon l'id renvoyé dans l'URL.
Pour être clair : une table avec un champ "id", un champ "titre" et un champ "contenu".
Dans le menu je voudrais récupérer les titres pour en faire des liens, et qu'ensuite quand on clique on affiche le titre et le contenu de l'entrée correspondante.
J'ai déjà fais quelque chose de similaire dans mon site :
En deux pages, une avec une liste déroulante et un autre qui récupère la valeur id envoyée par le select du formulaire. Seulement, étant une liste déroulante, donc un formulaire, j'envoie le GET et hop c'est parti. Mais avec des liens (donc pas de formulaire) je patauge...
Voici quand même un bout de code que j'ai essayé et qui est sans doute bien à côté de la plaque :
<?php
include("cfgsql.php");
$reponse = $bdd->query('SELECT * FROM miroiterie WHERE id = :id');
$requete->bindValue(':id', $_GET['id'], PDO::PARAM_INT);
$requete->execute();
$donnees = $requete->fetch(PDO::FETCH_ASSOC);
$requete->closeCursor();
while ($donnees = $reponse->fetch())
echo
'<a href="miroiterie.php?id=' . $donnees['id'] . '" class="lien">'<h1>' . (stripslashes($donnees['titre'])) . '</h1>'</a><br />';
$reponse->closeCursor();
?>
Merci d'avance et bonne fin de journée :)
A voir également:
- Menu dynamique php
- Tableau croisé dynamique - Guide
- Menu déroulant excel - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Easy php - Télécharger - Divers Web & Internet
- Canon quick menu - Télécharger - Utilitaires
3 réponses
Salut,
Quand tu attends un seul résultat(une seuleligne) au plus venant de ta requete, alors pas besoin d'une boucle, un simple "fetch" suffirait ...
Parcontre, si tu attend zéro ou plusieurs résultats, alors il faut une boucle.
Toi tu as exécuter les deux ...
PS : Tu mélanges trop les noms des objets, fixe toi un modèle de nom significatif et simple comme "$req" et utilises le ...
Mettez en résolu quand c'est résolu -.- ...
Quand tu attends un seul résultat(une seuleligne) au plus venant de ta requete, alors pas besoin d'une boucle, un simple "fetch" suffirait ...
$datas = $req->fetch(PDO::FETCH_ASSOC);
Parcontre, si tu attend zéro ou plusieurs résultats, alors il faut une boucle.
while($datas = $req->fetch(PDO::FETCH_ASSOC)) {
}
Toi tu as exécuter les deux ...
<?php
include("cfgsql.php");
$id = 0;
$str = 'SELECT * FROM miroiterie';
if(isset($_GET['id']) AND is_numeric($_GET['id']) AND $_GET['id'] > 0) {
$id = intval($_GET['id']);
$str .= ' WHERE id = :id';
}
$requete= $bdd->query($str);
if($id > 0) $requete->bindValue(':id', $id, PDO::PARAM_INT);
$requete->execute();
while ($donnees = $requete->fetch(PDO::FETCH_ASSOC))
echo '<a href="miroiterie.php?id=' . $donnees['id'] . '" ',
'class="lien"><h1>' . (stripslashes($donnees['titre'])) . '</h1></a><br />';
$requete->closeCursor();
?>
PS : Tu mélanges trop les noms des objets, fixe toi un modèle de nom significatif et simple comme "$req" et utilises le ...
Mettez en résolu quand c'est résolu -.- ...
J'ai pas trop saisi ce que tu m'as expliqué pour les boucles et les résultats mais à force de persévérance et en m'inspirant de ce que j'avais déjà fait avec ma liste déroulante j'ai réussi à m'en sortir tout seul comme un grand :)
Je mets mon code en espérant que c'est du boulot correct (en tout cas ça fonctionne lol) :
Ma page est divisée en deux parties (une div flottante pour le contenu et le menu à côté) :
Je mets mon code en espérant que c'est du boulot correct (en tout cas ça fonctionne lol) :
Ma page est divisée en deux parties (une div flottante pour le contenu et le menu à côté) :
<div id="content" class="content">
<div id="contenu" class="contenu">
<?php
include("cfgsql.php");
$requete = $bdd->prepare('SELECT * FROM miroiterie WHERE id = :id');
$requete->bindValue(':id', $_GET['id'], PDO::PARAM_INT);
$requete->execute();
$donnees = $requete->fetch(PDO::FETCH_ASSOC);
$requete->closeCursor();
{
echo '<h1>' . (stripslashes($donnees['titre'])) . '</h1>';
echo '<img src="' . $donnees['imgurl'] . '" alt="" width="670px" class="imageflottantemiroiterie"/>';
echo '<h4>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['stitre1']))))) . '</h4>';
echo '<p>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['contenu1']))))) . '</p>';
echo '<h4>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['stitre2']))))) . '</h4>';
echo '<p>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['contenu2']))))) . '</p>';
echo '<h4>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['stitre3']))))) . '</h4>';
echo '<p>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['contenu3']))))) . '</p>';
echo '<h4>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['stitre4']))))) . '</h4>';
echo '<p>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['contenu4']))))) . '</p>';
echo '<h4>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['stitre5']))))) . '</h4>';
echo '<p>' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['contenu5']))))) . '</p>';
}
?>
</div>
<div id="menu" class="menu">
<h1>
Nos prestations
</h1>
<h3>
<?php
include_once("cfgsql.php");
$reponse = $bdd->query('SELECT id, titre FROM miroiterie');
while ($donnees = $reponse->fetch())
{
echo'<a href="miroiterie.php?id=' . $donnees['id'] . '" class="lien">' . (nl2br(htmlspecialchars(htmlspecialchars_decode(stripslashes($donnees['titre']))))) . '</a><br />';
}
?>
</h3>
</div>
<br />
</div>