[PHP] comparer ligne fichier et bdd
Fermé
Matii_75
Messages postés
22
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
12 février 2009
-
10 juin 2008 à 13:09
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 - 10 juin 2008 à 18:41
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 - 10 juin 2008 à 18:41
A voir également:
- [PHP] comparer ligne fichier et bdd
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Fichier host - Guide
5 réponses
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
10 juin 2008 à 13:14
10 juin 2008 à 13:14
Tu récupères ta ligne, puis tu fais un $cols = explode("\t", $ligne);
Comme sa $cols[0] sera ton premier champs de la bdd, $cols[1] le deuxieme etc...
Non?
Je dois avouer que j'ai pas très bien compris aussi ce que tu veux faire ;o
Comme sa $cols[0] sera ton premier champs de la bdd, $cols[1] le deuxieme etc...
Non?
$fp = fopen('file.dat', 'r'); $i = 0; while (!feof($fp)) { $ligne = fgets($fp); $file[$i] = explode("\t", $ligne); $i++; } $sql = 'SELECT * FROM `table`'; $req = mysql_query($sql); $i = 0; while($data = mysql_fetch_array($req)) { if ($data['champ1'] != $file[$i][0] || $data['champ2'] != $file[$i][1] [..]) echo 'Pas identique'; $i++; }
Je dois avouer que j'ai pas très bien compris aussi ce que tu veux faire ;o
Matii_75
Messages postés
22
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
12 février 2009
1
10 juin 2008 à 13:20
10 juin 2008 à 13:20
J'ai 7 champs dans ma table, et dans mon fichier seulement 4 ...
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
10 juin 2008 à 13:22
10 juin 2008 à 13:22
Comment veux tu comparés des choses qui ne sont pas identiques des le depart?
Je comprend pas vraiment, explique mieu, donne un exemple
Je comprend pas vraiment, explique mieu, donne un exemple
Matii_75
Messages postés
22
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
12 février 2009
1
10 juin 2008 à 14:13
10 juin 2008 à 14:13
Dans ma table j'ai 7 champs, je voudrais comparer 4 de ces champs au 4 données présentes sur chaque ligne du fichier
Table : c1 c2 c3 c4 c5 c6 c7
Fichier c8 c9 c10 c11
si c1 = c8, c2 = c9, c3 = c10, c4 = c11 alors enregistrement dans la table, sinon passer à la ligne suivante...
Table : c1 c2 c3 c4 c5 c6 c7
Fichier c8 c9 c10 c11
si c1 = c8, c2 = c9, c3 = c10, c4 = c11 alors enregistrement dans la table, sinon passer à la ligne suivante...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
10 juin 2008 à 18:41
10 juin 2008 à 18:41
Tu peux faire quelque chose comme sa:
<?php $fp = fopen('file.dat', 'r'); $total = 0; while (!feof($fp)) { $ligne = fgets($fp); $file = explode("\t", $ligne); $cols[$file[0]][$file[1]][$file[2]][$file[3]] = true; //A modifier, le "0" "1" "2" et "3" -> 0=La premier colonne, 3=La quatrième, etc.. $total++; } $sql = 'SELECT * FROM `table`'; $req = mysql_query($sql); $identiques = 0; $manquant2 = 0; $total2 = 0; while($data = mysql_fetch_array($req)) { if (isset($cols[$data['c1']][$data['c2']][$data['c3']][$data['c4']])) //Modifier le nom des champs $identiques++; else $manquant2++; $total2++; } $manquant1 = $total - $identique; //$total -> Nombre total dans le fichier //$total2 -> Nombre total dans la base //$identiques -> Nombre présent dans les deux //$manquant1 -> Nombre présent dans le fichier et pas dans la base //$manquant2 -> Nombre présent dans la base et pas dans le fichier ?>