sanddy
Membre récent

Hors-Ligne
Messages: 22

Je suis un lama!
|
Bonjour,
Je vous réexplique mon problème, j'ai une table membres (je la simplifie pour que vous compreniez mieux) avec un numero et un nom.
Voici ma table :
CREATE TABLE membres ( numero int(11) NOT NULL, nom varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
# # Contenu de la table `membres` #
INSERT INTO membres VALUES (1, 'martin'); INSERT INTO membres VALUES (2, 'maurice'); INSERT INTO membres VALUES (3, 'dupond'); INSERT INTO membres VALUES (1, 'dupont'); INSERT INTO membres VALUES (2, 'marcellin'); INSERT INTO membres VALUES (2, 'maret'); INSERT INTO membres VALUES (4, 'popeye');
Je souhaiterais pouvoir faire un affichage de ces enregistrements mais que lorsque le même numéro revient, les noms puissent se concaténer. Exemple ici : 1 donnerait martin & dupont 2 donnerait maurice, marcellin & maret 3 donnerait M. dupond 4 donnerait M. popeye
Comment faire ?
J'arrive à faire afficher les numéros et noms, voici le fichier :
<?PHP
echo "<center><h1>Test</h1></center>";
$serveur="localhost"; $utilisateur="root"; $motdepasse=""; $database="mabase"; @mysql_connect($serveur,$utilisateur,$motdepasse) or die("<CENTER><A style='color:white;background-color:red'> Désolé, problème de serveur </BODY></HTML>");
$TableRep=mysql($database,"SELECT * FROM membres ORDER BY numero") or die("<br><CENTER><A style='color:white;background-color:red'> Désolé, la table est inaccessible </BODY></HTML>"); $NombreEntrees=mysql_num_rows($TableRep); ?> <br><table width="93%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td height="210"> <p align="justify"><font color="#000000"><b><font face="Verdana, Arial" size="2">Bienvenue sur le site<br><br> </font></b> </p></td></tr></table><br>
<? $i=0; /* initialisation de la variable de boucle */
while ($i < $NombreEntrees) /* faire tant que la fin de la table n'est pas atteinte */ { $numero = mysql_result($TableRep, $i, "numero"); $nom =mysql_result($TableRep, $i, "nom"); echo "<table><tr>"; echo "<font size=\"1\">"; echo "<td align=\"center\">"; echo "\"$numero\","; echo "</td>"; echo "<td>"; echo "\"$nom\","; echo "</td>"; echo "</font>"; echo "</tr></table>"; $i++; }
echo "</body></html>"; ?>
Maintenant, comment faire pour vouloir faire afficher ce que je veux 
Actuellement, il y a :
"1", "martin", "1", "dupont", "2", "maurice", "2", "marcellin", "2", "maret", "3", "dupont", "4", "popeye",
Et je voudrais :
"1", "martin & dupont", "2", "maurice, marcellin & maret", "3", "M. dupont", "4", "M. popeye",
Je ne vois pas où et comment faire pour afficher le "&" avec le dernier membre du même numéro. Et s'ils sont plusieurs, mettre des virgules comme au numéro 3. Et si le membre est le seul à avoir ce numéro, j'aimerais afficher "M. " devant.
SVP, j'ai vraiment besoin d'une aide. Merci d'avance et merci encore pour la réponse aussi.
Cordialement,
Sandy
|