Ma page php m'affiche plusieurs fois les mêmes données

Avatar du membre
Petit nouveau ! | 3 Messages

29 déc. 2019, 12:54

Bonjour,

Je débute en php, et je créer mon 1er site en suivant les tutos sur la toile.

jusqu'a maintenant je m'en sortais bien, mais je suis confronter a un petit soucis.

J'ai une page php qui récupère des infos dans plusieurs table liées par un appel de l'id dans l'url.

Au début aucuns soucis avec les test (une seule entrée dans la table principale)
Puis lorsque que j'ai rentrer une deuxième ligne dans cette table, l'affichage dans ma page php ce multiplier.

Image

si y a 3 entrée, sa affiche 3 fois ma ligne demandé, si 4, sa affiche 4 fois, ect...

D'ou peu venir le soucis de multiplication ?

Merci d'avance de votre aide
Le rétro-gaming, ce n'est pas qu'une passion...C'est un Art...

Eléphanteau du PHP | 16 Messages

29 déc. 2019, 16:57

Salut, il faudrait ton code pour en savoir plus :)

Avatar du membre
Petit nouveau ! | 3 Messages

29 déc. 2019, 18:39

Oups désolé, oui ce serais bien plus logique.
Voici le code de la page :

Code : Tout sélectionner

<!-- appel au fichier metas contenant les infos metatags de la page, et appel au fichier config permettant la connection a la base de données--> <?php require_once('includes/metas.php'); require_once('includes/config.php'); ?> <body> <!-- Affichage du header--> <?php require_once('includes/header.php'); ?> <div class="fix main_content_area"> <div class="fix centre main_content"> <div class="fix home_content floatleft"> <?php // Je prépare mes requetes $requete = $bdd->prepare("SELECT * FROM ps1_jeux WHERE id = :id"); $req001 = $bdd->prepare("SELECT * FROM ps1_jeux INNER JOIN ps1_developpeur ON ps1_jeux.developpeur = ps1_developpeur.id"); $req002 = $bdd->prepare("SELECT * FROM ps1_jeux INNER JOIN ps1_editeur ON ps1_jeux.editeur = ps1_editeur.id"); $req003 = $bdd->prepare("SELECT * FROM ps1_jeux INNER JOIN ps1_genre ON ps1_jeux.genre = ps1_genre.id"); $req004 = $bdd->prepare("SELECT * FROM ps1_jeux INNER JOIN ps1_zone ON ps1_jeux.zone = ps1_zone.id"); $req005 = $bdd->prepare("SELECT * FROM ps1_jeux INNER JOIN ps1_pegi ON ps1_jeux.pegi = ps1_pegi.id"); $req006 = $bdd->prepare("SELECT * FROM ps1_jeux INNER JOIN ps1_typecode ON ps1_jeux.typecode = ps1_typecode.id"); // Je lie la variable $id définie au-dessus au paramètre :id de la requête préparée $requete->bindValue(':id', $_GET['id'], PDO::PARAM_STR); //j'exécute les requêtes $requete->execute(); $req001->execute(); $req002->execute(); $req003->execute(); $req004->execute(); $req005->execute(); $req006->execute(); //je récupère les resultats des requêtes while ($donnees = $requete->fetch()) while ($donnees1 = $req001->fetch()) while ($donnees2 = $req002->fetch()) while ($donnees3 = $req003->fetch()) while ($donnees4 = $req004->fetch()) while ($donnees5 = $req005->fetch()) while ($donnees6 = $req006->fetch()) { ?> <!--Début de l'affichage de la page--> <div class="fix single_home_content"> <div class="fix single_page_feature_img floatleft"> <img src="images/80x80.jpg"/> </div> <div class="fix single_page_title_info floatright"> <div class="fix single_page_title"> <h1><?php echo $donnees['titre']; ?></h1> </div> <div class="fix single_page_download"> <div class="fix single_page_title"><br> <h1>Critique du Staff : </h1> <?php echo $donnees['critique']; ?> </body> </div> </div> </div> </div> <!--Affichage des images d'illustration--> <div class="fix single_home_content"> <h2 class="screenshot_title"><i class="fa fa-angle-double-down"></i> Screenshots</h2> <div id="owl-example" class="owl-carousel"> <div class="fix single_slide floatleft"> <a class="group1" href="images/images_games/illu/<?php echo $donnees['code']; ?>-1.jpg" title="Ridge Racer"><img src="images/images_games/illu/<?php echo $donnees['code']; ?>-1.jpg" alt=""/></a> </div> <div class="fix single_slide floatleft"> <a class="group1" href="images/images_games/illu/<?php echo $donnees['code']; ?>-2.jpg" title="Ridge Racer"><img src="images/images_games/illu/<?php echo $donnees['code']; ?>-2.jpg" alt=""/></a> </div> <div class="fix single_slide floatleft"> <a class="group1" href="images/images_games/illu/<?php echo $donnees['code']; ?>-3.jpg" title="Ridge Racer"><img src="images/images_games/illu/<?php echo $donnees['code']; ?>-3.jpg" alt=""/></a> </div> <div class="fix single_slide floatleft"> <a class="group1" href="images/images_games/illu/<?php echo $donnees['code']; ?>-4.jpg" title="Ridge Racer"><img src="images/images_games/illu/<?php echo $donnees['code']; ?>-4.jpg" alt=""/></a> </div> <div class="fix single_slide floatleft"> <a class="group1" href="images/images_games/illu/<?php echo $donnees['code']; ?>-5.jpg" title="Ridge Racer"><img src="images/images_games/illu/<?php echo $donnees['code']; ?>-5.jpg" alt=""/></a> </div> <div class="fix single_slide floatleft"> <a class="group1" href="images/images_games/illu/<?php echo $donnees['code']; ?>-6.jpg" title="Ridge Racer"><img src="images/images_games/illu/<?php echo $donnees['code']; ?>-6.jpg" alt=""/></a> </div> </div> </div> <!--Affichage des informations--> <div class="fix single_home_content"> <!--menu horizontal--> <div id="horizontalTab"> <ul> <li><a href="#tab-1">Synopsis</a></li> <li><a href="#tab-2">Informations</a></li> </ul> <div id="tab-1"> <div class="description floatleft"> <img src="images/images_games/illu/<?php echo $donnees['code']; ?>-6.jpg"/> </div> <p><?php echo $donnees['synopsys']; ?> </p> </div> <div id="tab-2"> <table> <tbody> <tr><td><strong>Titre : </strong></td> <td> <?php echo $donnees['titre']; ?> </td></tr> <tr><td><strong>Année de Sortie :</strong></td> <td><?php echo $donnees['annee']; ?> </td></tr> <tr><td><strong>Genre :</strong></td> <td><?php echo $donnees3['nom']; ?> </td></tr> <tr><td><strong>Développeur :</strong></td> <td><?php echo $donnees1['nom']; ?> </td></tr> <tr><td><strong>Editeur :</strong></td> <td><?php echo $donnees2['nom']; ?></td></tr> <tr><td><strong>Zone :</strong></td> <td><?php echo $donnees4['nom']; ?></td></tr> <tr><td><strong>Pegi :</strong></td> <td>+<?php echo $donnees5['age']; ?></td></tr> <tr><td><strong><?php echo $donnees6['nom']; ?> :</strong></td> <td><?php echo $donnees['code']; ?></td></tr> <tr><td><strong>Nbre de joueurs :</td> <td><?php echo $donnees['nbrejoueur']; ?></strong></td></tr> <tr><td><strong>Blocks mémoire :</td> <td><?php echo $donnees['memoryblocks']; ?> Block(s)</strong></td></tr> <tr><td><strong>Edition Platinum :</td> <td><?php echo $donnees['platinum']; ?></strong></td></tr> <tr><td><strong>Edition value serie :</td> <td><?php echo $donnees['valueserie']; ?></strong></td></tr> <tr><td><strong>Double boitier :</td> <td><?php echo $donnees['doubleboitier']; ?></strong></td></tr> </tbody> </table> </div> <div id="tab-3"> </div> <div id="tab-4"> </div> </div> </div> <?php } $requete->closeCursor(); $req001->closeCursor(); $req002->closeCursor(); $req003->closeCursor(); $req004->closeCursor(); $req005->closeCursor(); $req006->closeCursor(); // Termine le traitement des requêtes ?> <div class="fix home_wide_add_area"> <div class="fix home_wide_add"> <!-- Affichage de la bannière de publicité par un appel au fichier pub_centre.php--> <?php require_once('includes/pub_centre.php'); ?> </div> </div> </div> <!-- Affichage de la collonne de droite par un appel au fichier right_game.php--> <?php require_once('includes/right_game.php'); ?> </div> </div> <!-- Affichage de la partie haute du footer par un appel au fichier footer_header.php--> <?php require_once('includes/footer_header.php'); ?> <!-- Affichage de la partie basse du footer par un appel au fichier footer.php--> <?php require_once('includes/footer.php'); ?> <script src="http://code.jquery.com/jquery.js"></script> <script src="js/pgwslider.js"></script> <script type="text/javascript"> $(document).ready(function() { $('.pgwSlider').pgwSlider(); }); </script> <script type="text/javascript" src="js/selectnav.min.js"></script> <script type="text/javascript"> selectnav('nav', { label: '-Navigation-', nested: true, indent: '-' }); </script> <!-- Include owl js plugin --> <script src="js/owl.carousel.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#owl-example").owlCarousel({ items : 4, itemsCustom : false, itemsDesktop : [1199,4], itemsDesktopSmall : [980,3], itemsTablet: [768,2], itemsTabletSmall: false, itemsMobile : [479,1], singleItem : false, itemsScaleUp : false, navigation : true, navigationText : ["prev","next"], pagination : false }); }); </script> <!-- Responsive Tabs JS --> <script src="js/jquery.responsiveTabs.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function () { $('#horizontalTab').responsiveTabs({ rotate: false, startCollapsed: 'accordion', collapsible: 'accordion', setHash: true, disabled: [4,5] }); }); </script> <script type="text/javascript"> $('#report_link').click(function(){ $('#report').slideToggle('normal'); }); $('#report_link').click(function(){ $('#older_versions').hide('normal'); }); $('#older_version').click(function(){ $('#older_versions').slideToggle('normal'); }); $('#older_version').click(function(){ $('#report').hide('normal'); }); </script> <script src="js/jquery.colorbox.js"></script> <script> $(document).ready(function(){ $(".group1").colorbox({rel:'group1'}); $(".group2").colorbox({rel:'group2', transition:"fade"}); $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"}); $(".group4").colorbox({rel:'group4', slideshow:true}); $(".ajax").colorbox(); $(".youtube").colorbox({iframe:true, innerWidth:640, innerHeight:390}); $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409}); $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"}); $(".inline").colorbox({inline:true, width:"50%"}); $(".callbacks").colorbox({ onOpen:function(){ alert('onOpen: colorbox is about to open'); }, onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); }, onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); }, onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); }, onClosed:function(){ alert('onClosed: colorbox has completely closed'); } }); $('.non-retina').colorbox({rel:'group5', transition:'none'}) $('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true}); //Example of preserving a JavaScript event for inline calls. $("#click").click(function(){ $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here."); return false; }); }); </script> </body> </html>
Le rétro-gaming, ce n'est pas qu'une passion...C'est un Art...

Mammouth du PHP | 2703 Messages

29 déc. 2019, 18:48

il ne faut faire qu'une seule requête du style :
SELECT ps1_jeux.*, ps1_developpeur.mettrelebonchamppourlenom FROM ps1_jeux, ps1_developpeur WHERE ps1_jeux.id = :id and ps1_jeux.developpeur = ps1_developpeur.id
une fois qu'elle fonctionne, il faut ajouter les autres champs des autres tables.

Avatar du membre
Petit nouveau ! | 3 Messages

29 déc. 2019, 19:17

il ne faut faire qu'une seule requête du style :
SELECT ps1_jeux.*, ps1_developpeur.mettrelebonchamppourlenom FROM ps1_jeux, ps1_developpeur WHERE ps1_jeux.id = :id and ps1_jeux.developpeur = ps1_developpeur.id
une fois qu'elle fonctionne, il faut ajouter les autres champs des autres tables.
J'avais penser à combiner toutes les requètes, mais j'ai abandonner car rien ne fonctionner dans ce que je mettais.

J'ai essayer ta requète :

Code : Tout sélectionner

$requete = $bdd->prepare("SELECT ps1_jeux.*, ps1_developpeur.nom FROM ps1_jeux, ps1_developpeur WHERE ps1_jeux.id = :id and ps1_jeux.developpeur = ps1_developpeur.id");
Seulement sa n'affiche pas la données voulu, sa indique "1" qui correspond a la données dans la table des jeux (ps1_jeux), mais pas la données correspondant a l'ID "1" de la table developpeur (ps1_developpeur).
Le rétro-gaming, ce n'est pas qu'une passion...C'est un Art...

Mammouth du PHP | 2703 Messages

29 déc. 2019, 19:30

il faut commencer par executer la requete dans phpmyadmin. quand elle fonctionnera dans phpmyadmin, il faudra corriger le code php.

SELECT ps1_jeux.*, ps1_developpeur.nom FROM ps1_jeux, ps1_developpeur as developpeur WHERE ps1_jeux.id = :id and ps1_jeux.developpeur = ps1_developpeur.id

Eléphanteau du PHP | 16 Messages

31 déc. 2019, 00:13

hello, tu imbriques plusieurs boucles...

while()
while()
while()
{ echo 'blablabla'; }

c'est comme si tu écrivais

while()
{
while()
{
while()
{ echo 'blablabla';
}
}
}

donc ton résultat s'affiche autant de fois qu'il y a de while.

je suis du meme avis que or1 et piwiteam concernant tes requêtes ;)

pourquoi y a t'il une balise <body> et </body> au milieu de ton code ?