Comparer des dates fichier txt et base de donné

goldo60

Nouveau WRInaute
Bonjour ,

Grace à des recherches et à votre aide, j'arrive à accoucher un petit script qui peut recuperer les logues d'un fichier texte que voici:
//fichier texte log.txt
209 2007-01-05 09:37:52 10:49
209 2007-01-05 09:37:52 11:49
212 2006-01-04 10:36:52 21:48

et les mettre dans une base de donnee

Voici le script

Code:
//fichier teste-script.php
<?php
$host_db = 'localhost';
$user_db = 'root';
$pass_db = 'assfrrrre';
$db = 'logorama';
mysql_connect ($host_db,$user_db,$pass_db) or die('Erreur : '.mysql_error() );
mysql_select_db($db) or die('Erreur :'.mysql_error());
$theData = file("c:\\wamp\\www\\log.txt");
foreach($theData as $line){
$line = rtrim($line);
print "<h3>$line</h3>";
list($codecall, $datecall,$duration) = split("\t", $line);
mysql_query("INSERT INTO logcall (codecall, datecall, duration) VALUES ( '$codecall, '$datecall', '$duration')")or die('Erreur :'.mysql_error());
}
?>

Ca marche très bien comme je voulais, mais maintenant le problème, à chaque refresh du script. le log est a nouveau inserer. donc il y a des doublons.

ce que je voudrais c'est comparer la date dans la base et celui dans le fichier txt. S'il existe deja je ne le prends pas sinon je le prends.

Merci pour votre aide.
 

julienr

WRInaute impliqué
salut le plus simple ou plutot le plus court :

Code:
mysql_query("INSERT INTO logcall (codecall, datecall, duration) VALUES ( '$codecall, '$datecall', '$duration')")or die('Erreur :'.mysql_error());

par

Code:
mysql_query("REPLACE INTO logcall (codecall, datecall, duration) VALUES ( '$codecall, '$datecall', '$duration')")or die('Erreur :'.mysql_error());

en prenant soin au préalable de déclarer un index ou une clef primaire sur le codecall...

ps: replace fait un insert si l'enregistrement n'existe pas et sinon un update des valeurs.
 

goldo60

Nouveau WRInaute
Merci beaucoup,

Ca marche tres bien. Maintenant, comment pourrais je faire pour qu'a chaque 1 minute il se refresh tout seul. Merci.
 

bproductiv

WRInaute accro
goldo60 a dit:
Merci beaucoup,

Ca marche tres bien. Maintenant, comment pourrais je faire pour qu'a chaque 1 minute il se refresh tout seul. Merci.
Je te le déconseille si tu es sur un mutualisé, sinon ton hébergeur va pas apprécier..
 

goldo60

Nouveau WRInaute
Merci bproductiv
,

Ma femme m'a fait une remarque très pernitente au sujet du script.

La remarque

Supposons que 2 codes fassent un appelle à la meme et date et à la meme heure. Que va t'il se passer. Je n'ai pas pensé a ca. Et dire qu'il y a 10 chambre soit 10 codes il y a fort possiblité que 3 chambres appelleny en meme temps.

Faut il faire l'analyse de la base avant de prendre les nouveaux données? Merci pour vos réponses.
 

Discussions similaires

Haut