Bonsoir,
Le code suivant m'affiche le nombre de livres édités par un éditeur et le titre de chacun :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php $db = mysql_connect("localhost","root", "") or die ('erreur de connexion'); mysql_select_db('***',$db); $select_livre = "SELECT L.TITRE AS titre, L.ID_LIVRE AS id_livre, ED.NOM_EDITEUR AS editeur, ED.ID_EDITEUR AS id_editeur FROM LIVRE L INNER JOIN EDITEUR ED ON ED.ID_EDITEUR = L.ID_EDITEUR "; $ID_EDITEUR= (iSset($_GET['id_editeur']) ? $_GET['id_editeur'] : null); if ( $ID_EDITEUR != null) { // on ajoute le critère que s'il est demandé $select_livre .= " WHERE ED.ID_EDITEUR=".$ID_EDITEUR; } $resultat_livre = mysql_query($select_livre)or die('Erreur SQL !'.$select_livre.'<br>'.mysql_error()); $nblignes = mysql_num_rows($resultat_livre); $data = mysql_fetch_assoc($resultat_livre); if ( $ID_EDITEUR != null) { echo '<strong>Editeur '.$data['editeur'].' : </strong/>' .$nblignes .' occurrence(s) <br/>'; } while ($data = mysql_fetch_assoc($resultat_livre)) { echo '<br/><h3>'.$data['titre'] . '</h3>'; } ?>
Editeur Michel Lafon : 3 occurrence(s)
titre1
titre2
titres3
Ce qui est conforme à mes attentes. Mais en testant plus avant, je me suis rendu compte que s'il n'y avait qu'un seul livre édité par un éditeur, je perdais l'affichage du titre :
Editeur Lattès : 1 occurrence(s)
=> le titre de ce livre ne s'affiche pas...
Un echo de la requête donne ceci :
Voyez-vous une explication à ce phénomène ? Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT L.TITRE AS titre, L.ID_LIVRE AS id_livre, ED.NOM_EDITEUR AS editeur, ED.ID_EDITEUR AS id_editeur FROM LIVRE L INNER JOIN EDITEUR ED ON ED.ID_EDITEUR = L.ID_EDITEUR WHERE ED.ID_EDITEUR=183
Partager