Voici une solution pour afficher des éléments d'une table en fonction d'une clé primaire d'une autre table.
Je prends l'exemple :
CATEGORIE 1
Partenaire 1
Partenaire 3
CATEGORIE 2
CATEGORIE 3
Partenaire 2
Partenaire 4
Le problème que je sais pas encore régler : si une catégorie n'a pas de partenaires affectés, elles restent affichées !
J'imagine qu'il faut utiliser une requête :
SELECT nom_partenaire FROM partenaire WHERE id_categorie =$i
avec une condition dans une nouvelle boucle ?
Est-ce que quelqu'un a une solution ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
<?php
$serveurBD = "localhost";
$nomUtilisateur = "myname";
$motDePasse = "2011";
$baseDeDonnees = "bd2011";
$connectServeur = mysql_connect($serveurBD, $nomUtilisateur, $motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
$connectBaseDeDonnees = mysql_select_db($baseDeDonnees)
or die("Cette base de donnees n'existe pas");
mysql_query("SET NAMES 'utf8'"); // régler caractères utf8
// Affichage categorie
$query = "SELECT DISTINCT nom_categorie FROM categorie ";
$result = mysql_query($query);
$i = 0;
while($row = mysql_fetch_row($result)) {
$nom_categorie = $row[0];
echo "<h2 class='categorie'>$nom_categorie</h2>";
// Affichage partenaire
$query2 = "SELECT id_categorie, nom_partenaire FROM partenaire WHERE id_categorie = $i ORDER BY nom_partenaire";
$result2 = mysql_query($query2);
$j = 0;
while($row = mysql_fetch_row($result2)){
$id_categorie = $row[0];
$nom_partenaire = $row[1];
echo "<div class='partenaire'>";
echo "<h5>" . $nom_partenaire . "</h5>";
echo "</div>"; // fin div 'partenaire'
++$j; // on incrémente le partenaire à +1
if($j % 3 == 0) { // Tous les 3 enregistrements, on annule le float
echo "<div class='nettoyeur'> </div>";
}
} //fin while result2
$i+=1; // on incrémente la catégorie
$i;
echo "<div class='nettoyeur'> </div>";
} // fin while result
?> |
Partager