Requete tables lièes

Résolu/Fermé
Signaler
Messages postés
75
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
24 avril 2020
-
Messages postés
75
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
24 avril 2020
-
Bonjour,

Je suis actuellement une page listant les albums photos donnant acces ensuite à une pages des photos de l'albums sélectionnes de mon association, j'ai donc créée trois tables que j'ai lié :
1/ Thèmes
2/ Albums
3/ Photos

sur cette page je souhaite faire apparaître par thèmes les albums disponibles et seulement ceux ou il y a des albums enregistrés.

j'ai tenté de placé ma requêtes à plusieurs endroits mais rien ne fonctionnent soit le nom du thème apparaît pour chaque album même si deux albums ont le même thème ou soit j'ai bien le bon thème avec le bon album mais il me manque le premier album.

voici mon code :

<?php
$title ="Les albums photos du CDOS 93";
include ("include/inc.header.php");
?>
  <div class="row menu">
   <div class="col-12 col-md-9 order-2 order-md-1 bandeau_menu p-0 align-self-center">
    <div class="col-3"><h2 class="text-uppercase font-weight-bold px-0 py-2">albums</h2></div>
    <div class="col-9">
     <div class="row pb-3">
      <div class="col-12 col-sm-6 col-md-3 pb-2 text-center align-items-center"><a href="photos.php"><img src="visuels/pictos/photos.svg" class="img-fluid" alt="Albums photos du CDOS 93"></a></div>
      <div class="col-12 col-sm-6 col-md-3 pb-2 text-center align-items-center"><a href=""><img src="visuels/pictos/videos.svg" class="img-fluid" alt="albums des vidéos du CDOS 93"></a></div> 
     </div>

    </div>
   </div>
<?php
include ("include/inc.nav.php");
?>
  </div>

   <?php
   $requete = "SELECT * FROM themes,albums_p WHERE themes.id=albums_p.id_th ";
   $reponse = $bdd->prepare($requete);
   $reponse->execute();
   $ligne=$reponse->fetch(PDO::FETCH_OBJ);
   ?>
   <div class="row album">
   <?php
    while ($ligne=$reponse->fetch(PDO::FETCH_OBJ)) {
        ?>
   <div class="col-12 pt-1 pb-1 corp text-center align-items-center" >
   <?php echo $ligne->themes; ?>
   </div>   
   
   <div class="col-12 col-sm-6 col-md-3 pb-3 part text-center align-items-center" >
    <a href="test_photos.php?<?php echo 'id=' . $ligne->id; ?>"><img src="images/albums/<?php echo $ligne->abrev_alb_p; ?>/<?php echo $ligne->vignettes_p; ?>" class="img-fluid" alt="photos de <?php echo $ligne->albums_p; ?>"></a>
    <h3><?php echo $ligne->albums_p; ?></h3>
   </div>
<?php }
?>
  </div>
   


<?php
include ("include/inc.poles.php");
include ("include/inc.footer.php");
?>



Configuration: Windows / Chrome 80.0.3987.163

2 réponses

Messages postés
34230
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 décembre 2021
3 859
Bonjour,


le nom du thème apparaît pour chaque album même si deux albums ont le même thème

Tu as juste besoin de tester si le nom du thème est le même que le précédent ou non... et donc de l'afficher ou pas.


<?php
    $themePrc = null;
    while ($ligne=$reponse->fetch(PDO::FETCH_OBJ)) {
          $theme = $ligne->themes;
          if($theme != $themePrc ){
        ?>
           <div class="col-12 pt-1 pb-1 corp text-center align-items-center" >
             <?php echo $theme ?>
           </div>
        <?php
            }
            $themePrc = $theme;
        ?>


1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
75
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
24 avril 2020
5
Bonjour Jordane,

Ca marche, merci beaucoup.

Bonne journée.

Laetitia
Messages postés
75
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
24 avril 2020
5
Jordane,

j'ai une autre question dans la page que l'on a vu je fais passer un paramètre GET, afin de récupérer uniquement l'album sur lequel on a cliquer et obtenir les photos correspondantes.

Je récupère bien le paramètre mais impossible de faire apparaître uniquement les photos de l'album concerné, tout mes albums apparaisse.

J'ai tenté plusieurs requête différentes mais aucune ne fonctionne :

voici mon code :

<?php
$title ="Les adhérents du CDOS 93";
include ("include/inc.header.php");
?>
		<div class="row menu">
			<div class="col-12 col-md-9 order-2 order-md-1 bandeau_menu p-0 align-self-center">
				<div class="col-3"><h2 class="text-uppercase font-weight-bold px-0 py-2">albums</h2></div>
				<div class="col-9">
					<div class="row pb-3">
						<div class="col-12 col-sm-6 col-md-3 pb-2 text-center align-items-center"><a href="photos.php"><img src="visuels/pictos/photos.svg" class="img-fluid" alt="Albums photos du CDOS 93"></a></div>
						<div class="col-12 col-sm-6 col-md-3 pb-2 text-center align-items-center"><a href=""><img src="visuels/pictos/videos.svg" class="img-fluid" alt="albums des vidéos du CDOS 93"></a></div> 
					</div>

				</div>
			</div>
<?php
include ("include/inc.nav.php");
?>
		</div>
		<?php
			echo 'Bonjour'.$_GET["id"];
			?> 	
		<?php
			$idget = $_GET["id"];
			?> 	

			<?php
			$requete = "SELECT * FROM photos,albums_p WHERE photos.id_alb_p=".$idget;
			$reponse = $bdd->prepare($requete);
			$reponse->execute();
			?>

		<div class="row album">
						<?php
						 $albumPrc= null;
						 while ($ligne=$reponse->fetch(PDO::FETCH_OBJ)) {
						 $album = $ligne->albums_p;
						 if($album != $albumPrc){

						 ?>
    	    <div class="col-12 pt-1 pb-1 corp text-center align-items-center" ><?php echo $ligne->albums_p; ?></div> 
						<?php
					}
					$albumPrc = $album;
					?>

				<div class="col-12 col-sm-6 col-md-3 pb-3 part text-center align-items-center" >
						<img src="images/albums/<?php echo $ligne->abrev_alb_p; ?>/<?php echo $ligne->photos; ?>" class="img-fluid" alt="photos de <?php echo $ligne->albums_p; ?>">
						<h3><?php echo $ligne->albums_p; ?></h3>
				</div>
						<?php
						}
						 ?>

		</div
><?php
include ("include/inc.poles.php");
include ("include/inc.footer.php");
?>


j'ai l'impression que ma requête ne récupère pas la variable, et je ne sais pas comment faire, depuis ce matin je cherche sur le net, mais je ne trouve pas.

merci si vous pouvez m'aider,

Laetitia