Comment concaténer deux enregistrements en un seul svp ?

  • Auteur de la discussion Auteur de la discussion sanddy
  • Date de début Date de début
Nouveau WRInaute
Bonjour,
J'ai une table de membres avec certains qui ont le même numéro de téléphone.
J'aimerais pouvoir ne former plus qu'un enregistrement, c'est-à dire que le champ "nom" aura pour valeur le "nom du membre" & "le nom de l'autre membre" avec le même numéro et dans le même enregistrement.
Comment faire svp ?
 
Nouveau WRInaute
Réexplication

Bonjour,

Je vous 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.

Cordialement,

Sandy
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut