Affichage bdd
Résolu
lolerki
Messages postés
606
Date d'inscription
Statut
Membre
Dernière intervention
-
lolerki Messages postés 606 Date d'inscription Statut Membre Dernière intervention -
lolerki Messages postés 606 Date d'inscription Statut Membre Dernière intervention -
Bonjour/Bonsoir,
Je viens vers vous car je coince au niveau de mon code php. Je suis entrain de développer une administration (je débute) et je voudrais lister les commentaires des articles. Sauf que voilà absolument rien ne s'affiche, j'ai beau me réfléchir je ne trouve pas la coquille.
Le code en question :
Merci de votre aide !
PS : je ne rentre même pas dans mon else if pourtant je ne vois pas de probleme dans mon lien :
Je viens vers vous car je coince au niveau de mon code php. Je suis entrain de développer une administration (je débute) et je voudrais lister les commentaires des articles. Sauf que voilà absolument rien ne s'affiche, j'ai beau me réfléchir je ne trouve pas la coquille.
Le code en question :
else if(isset($_GET['action']) == 'gestionc'){ //si action=gestionc (gestion culture) $commentaire = $bdd->prepare("SELECT * FROM commentaire WHERE id_article = ?"); //req $commentaire->execute(array($_GET['id'])); while($gestionC = $commentaire->fetch()) // on affiche les informations { ?> <div id="commentaire"> <p style="color:#585858"><b><?php echo $gestionC['auteur']; ?></b> | Le <?php echo $gestionC['date']; ?> <a href="index.php?page=com_article&id_com=<?php echo $gestionC['id_com']; ?>&action=supprimer" onClick="return confirm('Etes vous sur de vouloir supprimer le commentaire de <?php echo $gestionC['auteur']; ?>?');"> <img src="img/delete.png" title="Supprimer" align="right"/></a> <a href="index.php?page=com_article&id_com=<?php echo $gestionC['id_com']; ?>&action=modifier"> <img src="img/edit.png" title="Editer" align="right"/></a> <p><?php echo $gestionC['contenu']; ?></p> </div> <?php } // while gestionC } // get gestionc
Merci de votre aide !
PS : je ne rentre même pas dans mon else if pourtant je ne vois pas de probleme dans mon lien :
<a href="index.php?page=AdministrationCommentaire&id=<?php echo $info_cult['id']; ?>&action=gestionc"><?php echo $info_cult['titre']; ?></a>
4 réponses
Bonjour,
Le plus simple est déjà de faire un print de tes variables pour savoir ce qu'elles contiennent...
De plus.. on ne sais pas ce que tu as avant ton Elseif le souci est peut être là....
Le plus simple est déjà de faire un print de tes variables pour savoir ce qu'elles contiennent...
//A placer avant ton IF print_r($_GET);
De plus.. on ne sais pas ce que tu as avant ton Elseif le souci est peut être là....
bonsoir,
j'ai une erreur je n'ai jamais utiliser print_r alors je ne sais pas si c'est de mois ou pas :Parse error: syntax error, unexpected 'else' (T_ELSE)
voici le code compléte :
PS : les commentaires des articles s'affiche bien, mais pas ceux du point culture
Merci
j'ai une erreur je n'ai jamais utiliser print_r alors je ne sais pas si c'est de mois ou pas :Parse error: syntax error, unexpected 'else' (T_ELSE)
voici le code compléte :
<h3>Gestion des commentaires</h3><hr/> <?php if(isset($_SESSION['idadmin'])){ // si l'utilisateur est admin if(!isset($_GET['action'])){ // s'il n'y a aucune action on affiche les news $article = $bdd->query("SELECT * FROM articles ORDER BY id LIMIT 9"); ?> <p><u>Les articles :</u></p> <?php while($liste_article = $article->fetch()) { $nb_commentaire_article = $bdd->prepare("SELECT COUNT(*) AS nb_ligne FROM commentaire WHERE id_news = ?"); $nb_commentaire_article->execute(array($liste_article['id'])); $nbA = $nb_commentaire_article->fetch(); ?> <table> <tr><th>Titre :</th><td><a href="index.php?page=AdministrationCommentaire&id=<?php echo $liste_article['id']; ?>&action=gestion"><?php echo $liste_article['titre']; ?></a><td><?php if($nbA['nb_ligne']!= 0){ echo"(".$nbA['nb_ligne'].")";}else { echo "(0)";} ?>commentaire(s)</tr> </table> <?php } // while liste_article $point_culture = $bdd->query("SELECT * FROM culture ORDER BY id LIMIT 9"); ?> <p><u>Les point cultures :</u></p> <?php while($info_cult = $point_culture->fetch()){ // affichage des news et nombre de commentaires $nb_commentaire_culture = $bdd->prepare("SELECT COUNT(*) AS nb_com FROM commentaire WHERE id_article = ?"); $nb_commentaire_culture->execute(array($info_cult['id'])); $nbC = $nb_commentaire_culture->fetch(); ?> <table> <tr><th>Titre :<th><td><a href="index.php?page=AdministrationCommentaire&id=<?php echo $info_cult['id']; ?>&action=commentaire"><?php echo $info_cult['titre']; ?></a></td><td><?php if($nbC['nb_com'] !=0){ echo '('.$nbC['nb_com'].')';}else{ echo'(0)'; } ?>commentaire(s)</td></tr> </table> <?php } // while culture } // get action else if(isset($_GET['action']) == 'gestion'){ // si l'admin a clic sur une news article $commentaires = $bdd->prepare("SELECT * FROM commentaire WHERE id_news = ?"); $commentaires->execute(array($_GET['id'])); while($gestion = $commentaires->fetch()) { ?> <div id="commentaire"> <p style="color:#585858"><b><?php echo $gestion['auteur']; ?></b> | Le <?php echo $gestion['date']; ?> <a href="index.php?page=com_article&id_com=<?php echo $gestion['id_com']; ?>&action=supprimer" onClick="return confirm('Etes vous sur de vouloir supprimer le commentaire de <?php echo $gestion['auteur']; ?>?');"> <img src="img/delete.png" title="Supprimer" align="right"/></a> <a href="index.php?page=com_article&id_com=<?php echo $gestion['id_com']; ?>&action=modifier"> <img src="img/edit.png" title="Editer" align="right"/></a> <p><?php echo $gestion['contenu']; ?></p> </div> <?php } // while gestion } //gestion else if(isset($_GET['action']) == 'commentaire'){ // si l'admin a clic sur une news point culture $commentaire = $bdd->prepare("SELECT * FROM commentaire WHERE id_article = ?"); $commentaire->execute(array($_GET['id'])); while($gestionC = $commentaire->fetch()) { ?> <div id="commentaire"> <p style="color:#585858"><b><?php echo $gestionC['auteur']; ?></b> | Le <?php echo $gestionC['date']; ?> <a href="index.php?page=com_article&id_com=<?php echo $gestionC['id_com']; ?>&action=supprimer" onClick="return confirm('Etes vous sur de vouloir supprimer le commentaire de <?php echo $gestionC['auteur']; ?>?');"> <img src="img/delete.png" title="Supprimer" align="right"/></a> <a href="index.php?page=com_article&id_com=<?php echo $gestionC['id_com']; ?>&action=modifier"> <img src="img/edit.png" title="Editer" align="right"/></a> <p><?php echo $gestionC['contenu']; ?></p> </div> <?php } // while gestionC } // get gestionc else if(isset($_GET['action']) == 'supprimer') { // si l'action est supprimer $supprime = $bdd->prepare("DELETE FROM commentaire WHERE id_com = :id"); $supprime->execute(array('id' => $_GET['id_com'])); ?> <center><p class="message"><?php echo 'Le commentaire à bien était supprimer';?></p></center> <?php header('Refresh: 1;url=index.php?page=AdministrationCommentaire'); } // else if supprimer else if(isset($_GET['action']) == 'modifier') { //si l'action est modifier $edition_com = $bdd->prepare("SELECT * FROM commentaire WHERE id_com= ?"); $edition_com->execute(array($_GET['id_com'])); $editer = $edition_com->fetch(); ?> <form method="post" action=""> <p class="nv_com"><b>Edition du commentaire :</b><br /> <textarea name="Edition" rows="4" cols="50"><?php echo $editer['contenu']; ?></textarea></br> <input type="submit" name="edit" value="Confirmer" title="Editer le commentaire"/> | <input type="button" value ="Annuler" title="Anuuler la saisi" onclick="location.href='index.php'"/></p> </form> <?php if(isset($_POST['edit'])) { // si on n'a clic sur editer le commentaire if(empty($_POST['contenu'])) { $edition = $bdd->prepare("UPDATE commentaire SET contenu = :contenu WHERE id_com = :id"); $edition->execute(array( 'contenu' => $_POST['Edition'], 'id' => $_GET['id_com'] )); ?> <center><p class="message"><?php echo 'Le commentaire à bien était éditer';?></p></center> <?php header('Refresh: 1;url=index.php?page=AdministrationCommentaire'); } else{ ?><center><p class="message2">Erreur : le commentaire est vide</p></center><?php } } // $_POST['edit'] } // else if modifier else if(isset($_GET['banir'])){ // si l'action et banir } // else if banir } // idadmin else{ //sinon pas admin erreur ?> <center><p class="message2">Erreur : vous n'avez rien n'a faire ici</p></center> <?php } // else ?>
PS : les commentaires des articles s'affiche bien, mais pas ceux du point culture
Merci
Tu l'as mis où ton print_r ?
Mets le ici :
... sachant que cette ligne de code... ne peut pas fonctionner...
Ni celle là ....
Là... tu demandes via ISSET si la variable existe.... le résultat sera TRUE ou FALSE ... et donc ne pourra jamais être égale à gestion.. modifier.... etc....
Et vu que tes IF ELSE IF... ne te servent qu'à vérifier toujours la même variable...($_GET['action']) ... je te conseille de les remplacer par un SWITCH
Pour aller plus loin... tu devrais même mettre le code correspondant à chaque action dans des Fonctions .... et appeler ces fonctions dans le switch plutôt que de mettre tout le code directement dedans....
Mets le ici :
<h3>Gestion des commentaires</h3><hr/> <?php print_r($_GET); if(isset($_SESSION['idadmin'])) // Le reste de ton code...
... sachant que cette ligne de code... ne peut pas fonctionner...
else if(isset($_GET['action']) == 'gestion')
Ni celle là ....
else if(isset($_GET['action']) == 'modifier')
Là... tu demandes via ISSET si la variable existe.... le résultat sera TRUE ou FALSE ... et donc ne pourra jamais être égale à gestion.. modifier.... etc....
Et vu que tes IF ELSE IF... ne te servent qu'à vérifier toujours la même variable...($_GET['action']) ... je te conseille de les remplacer par un SWITCH
$action = isset($_GET['action'])?$_GET['action']:NULL; switch ($action) { case 'gestion': // ici le code de gestion break; case 'modifier': // ici le code pour modifier break; case 'commentaire': // ici le code pour les commentaires break; case 'supprimer': // ici le code pour supprimer break; default: // ici le code dans le cas où ne correspond à aucune autre valeur... break; }
Pour aller plus loin... tu devrais même mettre le code correspondant à chaque action dans des Fonctions .... et appeler ces fonctions dans le switch plutôt que de mettre tout le code directement dedans....