flock86 oh non les gars pas le slip! | Salut à tous! Je voulais avoir votre avis sur la construction d'un historique, qui nécessite une comparaison de table. Novice en PHP, j'essaie d'avoir le raisonnement, mais c'est pas forcément évident. Si vous le voulez bien je vais vous soumettre une idée dans ce cas précis et j'aimerai recueillir vos avis et/ou vos conseils merci!
voilà : j'ai trois tables dans ma base de données : une tp_edtion, une tp_historique et une tp_fdv. Tp_fdv et tp_edition possèdent une trentaine de champs en commun (on va réduire à 5 ici sinon on a pas fini!). le but est : si le contenu des champs en commun est différent alors inscrit dans une la table historique le champs différent issu de la table tp_fdv. bon j'essaye de taper les requetes correspondantes :
Code :
- <?
- //connexion à la bdd je vous en fais grace...
- //je sélectionne dans les deux tables les champs en commun (à comparer)
- $requete=mysql_query('SELECT * FROM tp_edition') or die(mysql_error());
- $requete1=mysql_query('SELECT id, nom, prenom, age, adresse, pays FROM tp_fdv') or die(mysql_error());
- //je parcoure les deux array
- $donnees=mysql_fetch_array($requete);
- $donnees1=mysql_fetch_array($requete1);
- //si les noms sont différents (pour un même id : c'est ce qu'il faudrait mais alors là il y a un problème dans ma requete)
- if $donnees['nom']!=$donnees1['nom']
- {$requete2=mysql_query (INSERT INTO tp_historique (ID, nom, prenom, age, adresse, pays)VALUES ('', '$donnees1['id']', '$donnees1['nom']','$donnees1['prenom']', '$donnees1['age']', '$donnees1['adresse']' , '$donnees1['pays']' );
- }
- elseif $donnees['prenom']!=$donnees1['prenom']
- {$requete2=mysql_query (INSERT INTO tp_historique (ID, nom, prenom, age, adresse, pays)VALUES ('', '$donnees1['id']', '$donnees1['nom']','$donnees1['prenom']', '$donnees1['age']', '$donnees1['adresse']' , '$donnees1['pays']' );
- }
- elseif $donnees['age']!=$donnees1['age']
- {$requete2=mysql_query (INSERT INTO tp_historique (ID, nom, prenom, age, adresse, pays)VALUES ('', '$donnees1['id']', '$donnees1['nom']','$donnees1['prenom']', '$donnees1['age']', '$donnees1['adresse']' , '$donnees1['pays']' );
- }
- elseif $donnees['adresse']!=$donnees1['adresse']
- {$requete2=mysql_query (INSERT INTO tp_historique (ID, nom, prenom, age, adresse, pays)VALUES ('', '$donnees1['id']', '$donnees1['nom']','$donnees1['prenom']', '$donnees1['age']', '$donnees1['adresse']' , '$donnees1['pays']' );
- }
- elseif $donnees['pays']!=$donnees1['pays']
- {$requete2=mysql_query (INSERT INTO tp_historique (ID, nom, prenom, age, adresse, pays)VALUES ('', '$donnees1['id']', '$donnees1['nom']','$donnees1['prenom']', '$donnees1['age']', '$donnees1['adresse']' , '$donnees1['pays']' );
- }
- mysql_close;
- ?>
|
en gros voilà comment je vois les choses. Enfin le problème se pose alors : y'a un problème de comparaison, je pense. La logique doit m'échapper un peu...
il faudrait comparer les données id par id...mais des id y'en a 8000 dans mes tables!! vous voyez le problème? qu'en pensez-vous? merci du coup de main!! Message édité par flock86 le 02-02-2006 à 09:58:10
|