Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: sanddy le le 05-07-2007 a 15:47:39

Titre: Comment concaténer deux enregistrements en un seul svp ?
Posté par: sanddy le le 05-07-2007 a 15:47:39

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 ?

Titre: Re:Comment concaténer deux enregistrements en un seul svp ?
Posté par: mikael le le 06-07-2007 a 15:55:02

Suffit de rajouter des colonnes ;)

Titre: Re:Comment concaténer deux enregistrements en un seul svp ?
Posté par: sanddy le le 06-07-2007 a 17:23:04

Merci mais comment faire pour lorsque je trouve le même numéro insérer dans une autre table ???

Quelle est la condition, if ??

Je n'arrive pas à traduire "si plusieurs numéros sont égales alors les insérer dans l'autre colonne"...

Titre: Re:Comment concaténer deux enregistrements en un seul svp ?
Posté par: mikael le le 06-07-2007 a 17:51:58

Alors tu fais d'abord une requête qui va voir si le numéro est déjà enregistré

Code:
if($NomDeLaColonne == $ChampNumero]
{
On insère dans une autre colonne
}
else
{
On insère dans la colonne
}


Essaie cela ;)

Titre: Re:Comment concaténer deux enregistrements en un seul svp ?
Posté par: sanddy le le 09-07-2007 a 08:39:24

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



Titre: Re:Comment concaténer deux enregistrements en un seul svp ?
Posté par: sanddy le le 09-07-2007 a 13:33:06

Problème résolu... ;)


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.