Fusion d'enregistrement

Eléphanteau du PHP | 14 Messages

03 févr. 2006, 17:11

Bonjour a vous !! :D

voilà mon problème, j'ai une base de données sous mysql avec plusieurs tables (jusque là tout vas bien :lol: )

le soucis c'est que j'ai une table PRINTERS :

Image

ce que je voudrais c'est de mettre un champ id et un champ printer

exemple :

id printer
1 HP 4000 D214, HP4550 Couleur A153

au lieu d'avoir comme dans l'image,

ce que je voudrais c'est avoir le langage sql car pour l'instant il n'y a que 3 enregistrement mais je suis ammener a en mettre beaucoup plus


merci d'avance :) :)
:: CoiKispiCs ::

La Vie est une fête !!

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

03 févr. 2006, 17:22

ce que je voudrais c'est de mettre un champ id et un champ printer
Euh... ce n'est pas déjà ce que tu as ? :shock:
ce que je voudrais c'est avoir le langage sql
car pour l'instant il n'y a que 3 enregistrement
mais je suis ammener a en mettre beaucoup plus
J'ai un peu de mal à comprendre tes demandes...

Eléphanteau du PHP | 14 Messages

03 févr. 2006, 17:28

excuse moi je me suis peut etre mal exprimé :lol:

ce que je voudrais c'est une requete sql qui permet de regrouper les champs de même "ID"

je sais pas si c'est plus clair :)
:: CoiKispiCs ::

La Vie est une fête !!

Eléphanteau du PHP | 32 Messages

03 févr. 2006, 18:56

si j'ai bien compri tu as une table PRINTERS, tu voudrai crée une autre table disant Imprimentes à partir de ta premiere table.

tu fait comme suit (tout en sachant que ce n'est pas optimisé):

mysql_connect("host","login","pass");
mysql_select_db("base_de_données");

$sql="select id from PRINTERS";
$res=mysql_query($sql)
while(list($id)=mysql_fetch_array($res))
{
  $sql1="select printer from PRINTERS where id=$id";
  $res1=mysql_query($sql1);
  while(list($nom)=mysql_fetch_array($res1))
    $noms=$noms." , " $nom;
   
  //insertion des données dans la nouvelle table.
  $sql2="insert into IMPRIMENTES(id,printer) values ($id, '$noms')";
  mysql_query($sql2);
}

mysql_close();
voilà !!!

Mammouth du PHP | 19672 Messages

03 févr. 2006, 20:56

Je vais me lancer un peu à l'aveuglette : tu voudrais récupérer le contenu sans doublons de la table "printers" pour le mettre dans une table "imprimantes" : Si c'est ça, une seule et unique requête :

Code : Tout sélectionner

INSERT INTO `IMPRIMANTES` (printer) VALUES(SELECT DISTINCT(Printer) FROM `PRINTERS`);
Sauf erreur de ma part, ça va faire le trasfert directement. Je n'ai pas ajouté les clés primiares de la table PRINTERS pas plus que je n'ai précisé celle de la table IMPRIMANTES, si ton champ id est de type INT auto_increment, la numérotation sera automatique.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

03 févr. 2006, 22:44

Regardez son exemple, je crois qu'il veut grouper les enregistrements par ID. "1 HP 4000 D214, HP4550 Couleur A153"

CoiKispiCs, essaie ça comme requête:

Code : Tout sélectionner

SELECT ID, GROUP_CONCAT(Printer) AS Printers FROM PRINTERS GROUP BY ID
Attention, cette requête ne modifie pas tes données, juste la façon dont elles sont affichées. Plus d'infos: GROUP_CONCAT

Eléphanteau du PHP | 14 Messages

06 févr. 2006, 15:45

merci beaucoup Hubert Roksor ta fonction marche pour l'affichage

comme j'ai pas trouver comment faire pour changer dans la base de données j'ai fais les changements dans l'affichage de la requete et ça marche :D


merci a vous tous pour avoir répondu aussi vite :)

@ bientot mais j'espere pour d'autre raisons que des problemes de base de données :lol:
:: CoiKispiCs ::

La Vie est une fête !!