IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

probléme de recherche dans un fichier [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 55
    Par défaut probléme de recherche dans un fichier
    Bonjour,
    Je suis en train de réaliser une application de pointage pour une entreprise.
    L'application consiste à récupérer un fichier texte du pointeuse(le fichier texte contient plusieurs lignes, chaque ligne contient l'identifiant de l'employé,la date de pointage et l'heure de pointage) après il faut traiter ses données pour avoir si un employé a eu un retard, s'il a eu des pauses , les durées des pauses...
    voici quelques lignes du fichier texte:
    21 14/05/2010 09:59:39
    21 14/05/2010 09:59:42
    3 14/05/2010 10:00:19
    10 14/05/2010 10:02:32
    3 14/05/2010 10:02:33
    10 14/05/2010 10:02:39
    16 14/05/2010 10:03:56
    16 14/05/2010 10:04:03
    l'étape 1 consiste à récupérer ses donnés séparément, que j'ai réussi à le faire.
    l'étape 2 consiste à ajouter le type de pointage s'il s'agit d'une sortie (S) ou entrée (E):par exemple pour l'employé dont l'identifiant est 16 il a fait une entrée à 10:03:56(car c'est le premier pointage pour lui) et une sortie à 10:04:03
    mais je ne suis pas arrivé à faire l'étape 2
    voila pour le moment le bout de mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <?php
    /*Ouverture du fichier en lecture seule*/
    $handle = fopen('C:/test.txt', 'r');
    /*Si on a réussi à ouvrir le fichier*/
    if ($handle)
    {
    	/*Tant que l'on est pas à la fin du fichier*/
     
    	while (!feof($handle))
    	{
    		/*On lit la ligne courante*/
    		$buffer = fgets($handle);
    		/*On l'affiche*/
    		echo $buffer;
    		echo "<br>";
    		$pieces=explode("	",$buffer);
    		echo $pieces[0];/*Id de l'employé*/
    		echo "<br>";
    	   $piecesun=$pieces[1];
           $piece1=explode(" ",$piecesun);
           echo $piece1[0];/*date de pointage*/
           echo "<br>";
           echo $piece1[1];/*heure de pointage*/
           echo "<br>";
     
    	}
     
    	/*On ferme le fichier*/
    	fclose($handle);
    }
    ?>
    merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu pourrais utiliser un indicateur pour chaque employé et le faire changer a chaque fois que tu tombes sur une ligne de l'employé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (!isset($tblES[$pieces[0]])) {
         $tblES[$pieces[0]] = FALSE;
    }
    else {
         $tblES[$pieces[0]] = !tblES[$pieces[0];
    }
     
    // Si $tblES[$pieces[0]] vaut FALSE c'est une entrée, si $tblES[$pieces[0]] vaut TRUE c'est une sortie.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 55
    Par défaut
    merci pour ta réponse mais malheureusement le résultat n'est pas bonne : en effet pour chaque employé et pour la premiere pointage elle donne E pour la deuxieme elle donne S mais pour la reste elle donne toujours S

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il manque un $ dans mon exemple
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 55
    Par défaut
    oui, je sais et aussi un crochet ] ,j'ai déja modifié ton code avant de poster mon dernier message mais comme je l'ai déja dit le résultat n'est pas bonne comme je l'ai expliqué dans le dernier message.
    merci pour votre aide et votre patience

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le bout de code fonctionne pourtant, on passe de FALSE à TRUE ou de TRUE à FALSE a chaque passage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 55
    Par défaut
    je suis désolé le code ne donne pas le résultat souhaité
    voila le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    /*Ouverture du fichier en lecture seule*/
    $handle = fopen('C:/test1.txt', 'r');
    /*Si on a réussi à ouvrir le fichier*/
    if ($handle)
    {
    	/*Tant que l'on est pas à la fin du fichier*/
    	$var=0;
    	while (!feof($handle))
    	{
    		/*On lit la ligne courante*/
    		$buffer = fgets($handle);
    		/*On l'affiche*/
    		//echo $buffer;
    		echo "<br>";
    		$pieces=explode("	",$buffer);
    		//echo $pieces[0];/*Id de l'employé*/
    		echo "<br>";
    	   $piecesun=$pieces[1];
           $piece1=explode(" ",$piecesun);
           //echo $piece1[0];/*date de pointage*/
           echo "<br>";
           //echo $piece1[1];/*heure de pointage*/
           echo "<br>";
    	   $rami=array("$pieces[0]","$piece1[0]","$piece1[1]");
    	   echo $rami[0];
    	   echo "<br>";
    	   echo $rami[1];
       	   echo "<br>";
           echo $rami[2];
           echo "<br>"; 
     
    	   if (!isset($tblES[$pieces[0]])) {
    	   echo"E";
         $tblES[$pieces[0]] = FALSE;
     
    }
    else {
         $tblES[$pieces[0]] = !$tblES[$pieces[0]];
    	 echo"S";
    }
     
     
    	}
     
     
     
    	/*On ferme le fichier*/
    	fclose($handle);
    }
    ?>
    voila le fichier sur lequel on fait le test(bout de fichier)
    1 14/05/2010 10:19:40 0
    1 14/05/2010 10:20:43 0
    26 14/05/2010 10:20:46 0
    1 14/05/2010 10:20:57 0
    26 14/05/2010 10:21:01 0
    26 14/05/2010 10:27:51 0
    26 14/05/2010 10:28:04 0
    27 14/05/2010 10:29:06 0
    27 14/05/2010 10:32:22 0
    27 14/05/2010 10:32:47 0
    27 14/05/2010 10:35:20 0
    27 14/05/2010 10:41:14 0
    27 14/05/2010 10:42:03 0
    27 14/05/2010 10:44:58 0
    27 14/05/2010 10:52:55 0
    24 14/05/2010 10:55:31 0
    24 14/05/2010 10:55:34 0
    6 14/05/2010 10:59:05 0
    prenons l'employé 27 par exemple au début il retourne E puis S et aprés il rentre S alors que je souhaite les retourner d'une façon alternée.
    tu peux l'exécuter chez toi.
    merci une autre fois

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le ELSE ne signifie pas "sortie", il indique qu'on change d'état.
    Comme je te l'ai dis il faut tester si on est a FALSE ou à TRUE.

    Je t'écris le tout en syntaxe condensée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tblES[$pieces[0]] = (!isset($tblES[$pieces[0]])) ? FALSE : !$tblES[$pieces[0]];
    echo ($tblES[$pieces[0]] == FALSE) ? "Entrée" : "Sortie";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 55
    Par défaut
    vraiment un grand merci Sabotage pour votre aide, le problème est résolu.
    Je vais marquer le sujet comme résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de recherche dans fichier texte
    Par lostsoul dans le forum Général Java
    Réponses: 17
    Dernier message: 13/12/2013, 03h34
  2. Réponses: 2
    Dernier message: 14/08/2012, 09h03
  3. Problème de recherche dans un fichier
    Par nash85 dans le forum C++
    Réponses: 3
    Dernier message: 08/12/2007, 19h29
  4. Problème de recherche dans une BD
    Par ledevelopeur dans le forum Bases de données
    Réponses: 5
    Dernier message: 28/04/2004, 09h49
  5. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo