Comment faire pour afficher plusieurs noms à la fois dans un boucle.
exemple: un db avec une table titres de livres et une table auteurs ;
y'a plusieurs auteurs pour un même livre.
comment afficher tous les auteurs pour un même livre?
Comment faire pour afficher plusieurs noms à la fois dans un boucle.
exemple: un db avec une table titres de livres et une table auteurs ;
y'a plusieurs auteurs pour un même livre.
comment afficher tous les auteurs pour un même livre?
Heu ... a moins que ce soit un probleme PHP .. desole ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4SELECT DISTINCT nom_auteur FROM table WHERE titre_livre = $Titre_livre;
ben oui pb php!
voici le code
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 mysql_connect ("localhost","root","") or die ("Impossible de se connecter"); mysql_select_db ("dvd") or die ("Impossible de se connecter"); if (!isset ($tri)) $sql="select * FROM t_livre JOIN t_auteurWHERE id_livre= num_livre ORDER BY titre"; else $sql="FROM t_livre JOIN t_auteurWHERE id_livre= num_livre ORDER BY '".$tri."'"; $result=mysql_query($sql); while ($data=mysql_fetch_array($result)) { echo "<table border=\"1\">"; echo "<tr> <td rowspan=\"3\"><img src=\"img/".$data["affiche"]."\"/> </td>"; echo "<td><a href=\"index.php?choix=catalogue&tri=titre\"> Titre: </a>".$data["titre"]."</td><td> </td>"; //a partir de là il m'affiche autant de fois le livre qu'il y a d'auteur echo "<td rowspan=\"2\">".$data["nom"]."</td></tr>"; echo "<tr><td><a href=\"index.php?choix=catalogue&tri=genre\"> Genre: </a>".$data["genre"]."</td><td> </td></tr>"; echo "<tr><td>".$data["annee"]."</td><td> </td>"; echo "<tr><td colspan=\"4\">".$data["resume"]."</td></tr>"; echo "<tr><td>Commentaires</td>"; echo "</table>"; } ?>
C'est normal tu as mis tout ton tableau dans la boucle. Que veux tu au juste? afficher tous les auteurs ds une même cellule ou sur des lignes différentes?
PS: Pense à utiliser les balises code pour que l'on voit mieux ton code
Dans tes requetes :
Tu cherche a faire quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $sql="select * FROM t_livre JOIN t_auteurWHERE id_livre= num_livre ORDER BY titre"; else $sql="FROM t_livre JOIN t_auteurWHERE id_livre= num_livre ORDER BY '".$tri."'";
Premeire requete : Select * => tu recupere tous les champs
Deuxiement requete : => Pas de select
Ou alors il y a un truc qui m'echape ?
Si tu veux un/les auteurs pour un livre:
Select t_auteur
ben excuse sur le code orginal y'a le $sql="select * FROM...
donc je cherche à mettre dans la même cellule tous les auteurs pour un même livre.
merci pour votre aide!
Mainjin quand on faion s'attend a une instruction qui doit en principe commer par { et se terminer par }.il est ou dans ton script
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (!isset ($tri))
pas besoin quand il n'y a qu'une instruction
Merçi Yobs je ne le savais pas .mais je prefereraipour une meilleure lisibilité
Code : Sélectionner tout - Visualiser dans une fenêtre à part {...}
merci pour tous les commentaires. Suis pas pro mais j'voudrais juste savoir comment faire cette cellule avec plusieurs auteurs.
Y'aurait-il quelqu'un qui sait?
essaye cela
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 echo "<table border=\"1\">"; $titreDuLivre = ""; while ($data=mysql_fetch_array($result)) { if ($titreDuLivre!=$data["titre"]) { echo "<tr> <td rowspan=\"3\"><img src=\"img/".$data["affiche"]."\"/> </td>"; echo "<td><a href=\"index.php?choix=catalogue&tri=titre\"> Titre: </a>".$data["titre"]."</td><td> </td>"; } echo "<td rowspan=\"2\">".$data["nom"]."</td></tr>"; if ($titreDuLivre!=$data["titre"]) { echo "<tr><td><a href=\"index.php?choix=catalogue&tri=genre\"> Genre: </a>".$data["genre"]."</td><td> </td></tr>"; echo "<tr><td>".$data["annee"]."</td><td> </td>"; echo "<tr><td colspan=\"4\">".$data["resume"]."</td></tr>"; echo "<tr><td>Commentaires</td>"; } $titreDuLivre = $data["titre"]; } echo "</table>";
Essaye plutot cela, il avai pas tout compris le monsieur
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 echo "<table style=\"border : 1 solid #000000;\">"; $etat = 0; $dataOld = array(); while ($data=mysql_fetch_array($result)) { if ($dataOld["titre"]!=$data["titre"] && $etat==1) { echo " </td> </tr> <tr> <td colspan=\"4\"><a href=\"index.php?choix=catalogue&tri=genre\"> Genre: </a>".$dataOld["genre"]."</td> </tr>"; echo "<tr> <td colspan=\"4\">".$dataOld["annee"]."</td><td> </td>"; echo "<tr> <td colspan=\"4\">".$dataOld["resume"]."</td>"; echo "</tr>"; echo "<tr> <td style=\"border-bottom : 1 solid #000000;\" colspan=\"4\">Commentaires</td></tr>"; $etat = 0 ; } if ($data["titre"]!=$dataOld["titre"] && $etat==0) { echo "<tr > <td><img src=\"img/".$data["affiche"]."\"/> </td>"; echo " <td><a href=\"index.php?choix=catalogue&tri=titre\"> Titre: </a>".$data["titre"]."</td> <td> </td> <td>"; $etat = 1; } echo "".$data["auteur"]."<br>"; $dataOld = $data; } if ($etat==1) { echo " </td> </tr> <tr> <td colspan=\"4\"><a href=\"index.php?choix=catalogue&tri=genre\"> Genre: </a>".$dataOld["genre"]."</td> </tr>"; echo "<tr> <td colspan=\"4\">".$dataOld["annee"]."</td><td> </td>"; echo "<tr> <td colspan=\"4\">".$dataOld["resume"]."</td>"; echo "</tr>"; echo "<tr> <td colspan=\"4\">Commentaires</td></tr>"; } echo "</table>";
moi pas avoir tout compris... mais ça marche.
si t'as encore du temps tu peux me mettre des commentaires pour que je comprenne mieux.
merci !!!!!!!!!!!!!!!!!!!
En fait, à la fin de chaque traitement de la ligne courante de ta requête, je la sauvegarde dans un array dateOld afin de comparer la ligne précédente a la ligne courant pour savoir si nous sommes en face d'un nouveau livre.
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
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
64
65
66
67
68
69
70 //ouverture de ton tableau echo "<table style=\"border : 1 solid #000000;\">"; //etat de ton tableau 0 = derniere balise tr fermée, si 1 = derniere balise tr ouvert $etat = 0; //initialisation d'un objet tableau $dataOld = array(); while ($data=mysql_fetch_array($result)) { //si le titre de $dataOld (ligne precedente de ta requete) != du titre de $data (ligne courante de ta requete) //et que la ligne du tableau HTML est ouverte //alors nouveau livre => // et donc fermeture de la ligne du tableau HTML //affectation de $etat = 0 pour signifier que la ligne du tableau HTML est refermée if ($dataOld["titre"]!=$data["titre"] && $etat==1) { echo " </td> </tr> <tr> <td colspan=\"4\"><a href=\"index.php?choix=catalogue&tri=genre\"> Genre: </a>".$dataOld["genre"]."</td> </tr>"; echo "<tr> <td colspan=\"4\">".$dataOld["annee"]."</td><td> </td>"; echo "<tr> <td colspan=\"4\">".$dataOld["resume"]."</td>"; echo "</tr>"; echo "<tr> <td style=\"border-bottom : 1 solid #000000;\" colspan=\"4\">Commentaires</td></tr>"; $etat = 0 ; } //si le titre de $dataOld (ligne precedente de ta requete) != du titre de $data (ligne courante de ta requete) //et que la ligne du tableau HTML est fermée //alors nouveau livre => // creation du debut de la ligne du tableau HTML //affectation de $etat = 1 pour signifier que la ligne du tableau HTML est ouvert if ($data["titre"]!=$dataOld["titre"] && $etat==0) { echo "<tr > <td><img src=\"img/".$data["affiche"]."\"/> </td>"; echo " <td><a href=\"index.php?choix=catalogue&tri=titre\"> Titre: </a>".$data["titre"]."</td> <td> </td> <td>"; $etat = 1; } echo "".$data["auteur"]."<br>"; //affectation de l'array $data (issue de ta ligne courante de ta requete) à $dataOld $dataOld = $data; } //sila ligne du tableau HTML est ouverte //alors ne pas oublier de fermer de la ligne du tableau HTML if ($etat==1) { echo " </td> </tr> <tr> <td colspan=\"4\"><a href=\"index.php?choix=catalogue&tri=genre\"> Genre: </a>".$dataOld["genre"]."</td> </tr>"; echo "<tr> <td colspan=\"4\">".$dataOld["annee"]."</td><td> </td>"; echo "<tr> <td colspan=\"4\">".$dataOld["resume"]."</td>"; echo "</tr>"; echo "<tr> <td colspan=\"4\">Commentaires</td></tr>"; } echo "</table>";
Si oui je referme ma ligne du tableau HTML (bien sur si un début de ligne du tableau HTML a déjà été créée: grâce à la variable état)
Voila. Est-ce clair ????
Désolé pour cette réponse tardive
merci kum! absent je n'ai pu te répondre mais merci beaucoup
Partager