Problème de doublons

Résolu/Fermé
Tony 77 Messages postés 2 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 21 novembre 2007 - 20 nov. 2007 à 23:55
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 - 22 nov. 2007 à 04:30
Bonjour,

Je suis débutant en PhP et je suis actuellement confronté à un petit problème.
J'ai créé un petit script permettant d'afficher des auteurs et des livres.

Actuellement, ça me donne ceci :

Auteur1 - Livre1
Auteur1 - Livre2
Auteur2 - Livre1
Auteur3 - Livre1
Auteur4 - Livre2

Et pour des raisons évidentes de présentation, je voudrais plutôt afficher ceci :

Auteur1 - Livre1
Livre2
Auteur2 - Livre1
Auteur3 - Livre1
Livre2

J'ai tenté la formule "GROUP BY auteur" mais là si ça m'affiche bien une fois chaque auteur, 1 seul de leurs livres apparait !!!

Si quelqu'un a compris où je veux en venir, peut-être pourra t-il m'aider ?

Merci d'avance,
Tony

4 réponses

s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
21 nov. 2007 à 00:14
Salut,

Tu es sur que ça ne fonctionne pas ?
SELECT * FROM table GROUP BY Auteur

EDIT : non de toute façon ça ne m'étonne pas.

Y'a moyen de faire ce que tu veux mais je n'arrive pas à m'en souvenir, et comme je suis fatigué j'ai du mal à y réfléchir ^^


0
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
21 nov. 2007 à 01:21
Bon je me souvient pas mais je pense que ça devrait fonctionner :

(il est important ranger par ordre alphabétique des auteurs)

$reponse = mysql_query("SELECT * FROM table_machin ORDER BY Auteur")or die(mysql_error());
while ($donnees = mysql_fetch_array($reponse))
	{
		// si cet auteur a déjà été cité précédemment on affiche que le nom du livre
		if ($donnees['auteur']=$deja_passe)
			{
				echo $donnees['livre'].'<br />';

			} else {
				// l'auteur n'a jamais été cité on affiche son nom et le livre
				$deja_passe=$donnees['auteur'];//on marque le passage de cette auteur
				echo '<hr />Auteur : '.$donnees['auteur'].'<br />';
				echo $donnees['livre'].'<br />';
			}
	}
0
Tony 77 Messages postés 2 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 21 novembre 2007
21 nov. 2007 à 21:57
Je te remercie pour ta réponse s.spark mais j'avoue être un peu trop limité pour appliquer ta recette.
Pour tout dire, je ne maitrise pas trop le code et si Dreamweaver n'existait pas, je serais bien mal !!!

N'y aurait-il pas quelque chose de plus simple à faire pour parvenir au même résultat ?

Tony
0
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
22 nov. 2007 à 04:30
Non car c'est extrêmement simple, et commenté qui plus est.
0