Comparaison et insert dans une table?

cedkey Messages postés 4 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 1 avril 2009 - 31 mars 2009 à 08:32
cedkey Messages postés 4 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 1 avril 2009 - 1 avril 2009 à 08:09
Bonjour,
Voila mon problème.
J'ai une valeur(VERT) que j'importe depuis un fichier texte(IMPORT.TXT) dans une table (table1) dans le champs (CID).
Cela fonctionne très bien, ce que je souhaiterai c'est de ne pas rentrer cette valeur brute (VERT)mais la compararer et faire la correspondance avec une autre valeur qui se trouve dans une autre table. Ouf c'est compliqué a décrire...

Exemple de ce que je voudrais:

Dans mon fichier texte j'ai la valeur "VERT"

Cette valeur à une correspondance dans une "table2"

exemple de ma table2

CID NOM
1 ROUGE
2 VERT

Donc dans ma "table1" au lieu d'insérer dirrectement la valeur "VERT" je souhaite y mettre "2"

Je ne sais pas si vous m'avez suivis ou pas....
Merci par avance de votre aide

1 réponse

cedkey Messages postés 4 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 1 avril 2009
1 avril 2009 à 08:09
Bonjour voir ce que j'ai fais mais bien sur qui ne fonctionne pas!!!

<?php
/* Connexion bdd */
mysql_connect('localhost','root','');
mysql_select_db('basetest');
//On vide la table1
mysql_query("TRUNCATE TABLE table1");

/* On ouvre le fichier à importer en lecture seulement */


/* Exemple ligne de mon fichier IMPORT.TXT: 1;VERT;COULEUR;ATTRIBUT*/

$fp=fopen("IMPORT.TXT","r");

while (!feof($fp)) /* Et Hop on importe */
{ /* Tant qu'on n'atteint pas la fin du fichier */
$ligne = fgets($fp,4096); /* On lit une ligne */

/* On récupère les champs séparés par ; dans liste*/
$liste = explode( ";",$ligne);

/* On assigne les variables */
$id = $liste[0];
$listcid = $liste[1];


/* AJOUT QUI NE FONCTIONNE PAS */

$querycid = "select cid from table2 LEFT JOIN nom='$listcid'";
$rescid = mysql_query($querycid) or die(mysql_error());
$arraycid = mysql_fetch_array($rescid);
$cid = $arraycid[0];



/* Ajouter un nouvel enregistrement dans la table */
$query = "INSERT INTO table1 VALUES('$cid')";
$result= MYSQL_QUERY($query);

if(mysql_error())
{ /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
print "Erreur dans la base de données : ".mysql_error();
print "
Importation stoppée.";
exit();
}
else /* Tout va bien */
print "Base mise a jour
";
}

echo "
Importation terminée, avec succès.";

/* Fermeture */
fclose($fp);
MYSQL_CLOSE();
?>

Merci pour votre aide.
Mon but étant d'avoir dans ma table1 au champs "cid" la valuer 1 et non la valeur "VERT" comme dans mon fichier IMPORT.TXT
0
Rejoignez-nous