8722 sujets

Développement web côté serveur, CMS

Bonjour,

J'en appelle à votre sagesse, je ne trouve malheureusement pas la réponse à une question qui me taraude depuis ce matin Smiley rolleyes

J'aimerais afficher des images dont les liens sont dans ma BDD. Il s'agit d'un site qui affichera des galleries photos de mes créations.

J'ai deux tables: une avec mes images et quelques données, et une autre avec les ensembles d'images.

Par exemple:
Des photos de scultures vont être dans l'ensembleCategorie "sculture" et des photos de peintures vont être dans l'ensembleCategorie "peinture".

Et ce que je fais sur le site, c'est que sur l'index, j'affiche une image de chaque catégorie.

Ainsi, j'utilise ceci:


<?php 
    $reponse = $bdd->query("SELECT * 
    FROM images i, ensembles e
    WHERE i.ImageEnsembleId = e.EnsembleId
    GROUP BY e.EnsembleCategorie
    ORDER BY rand()
    ");
    
    while($donnees = $reponse->fetch()){
    ?>
        <figure class="figure p-2">
            <a href="photos.php?id=<?php echo $donnees['EnsembleCategorie']; ?>">
            <img id="img_<?= $donnees['ImageId']; ?>" src="content/minit/min-<?php echo $donnees['ImageLien']; ?>.JPEG" alt="min-<?php echo $donnees['ImageId']; ?>-<?php echo $donnees['EnsembleSlug']; ?>">
            </a>
            <figcaption class="figure-caption centrer"><?php echo $donnees['EnsembleCategorie'] ?></figcaption>
        </figure>
    <?php
    }
    $reponse->closeCursor();
    ?>


Et ça fonctionne super mais la BDD me renvoie toujours la première ligne qu'il trouve; J'aimerais qu'il affiche une ligne aléatoire pour chaque ensembleCatégorie au lieu de ne retourner que la première.

Je ne sais pas si je suis parfaitement clair Smiley ravi

En tout cas, si quelqu'un me comprend, j'aimerais bien un petit coup de main !

Bonne soirée Smiley smile
Hello,

Problème résolue en disposant les tables différemment et faisant une sous-requête.