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

Langage PHP Discussion :

Récupération valeur dans un fichier en fonction de la valeur d'une boucle


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 436
    Points : 109
    Points
    109
    Par défaut Récupération valeur dans un fichier en fonction de la valeur d'une boucle
    Bonjour,

    Je remplis un tableau de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while ($row2 = mysqli_fetch_array($Result)) {
    		echo '<tr>
    				<td class="ligne">'.$row2['Line'].'</td>
    				<td class="cellule">'.$row2['CSL'].'</td>
    				<td class="Cout">'.$row2['NoType'].'</td>
    				<td class="Qty">'.$row2['ProcessDate'].'</td>
    				<td class="NCC">'.$row2['ErrorNumber'].'</td>
    			</tr>';
    												 }
    Je voudrais qu'en fonction de la valeur de ma cellule, une fonction aille lire dans un fichier txt sa correspondance et se remplace.

    Exemple: Si la valeur de '.$row2['ErrorNumber'].' est égal à 1432, je vais chercher cette valeur dans mon fichier et récupère le texte associé (ex: 'je suis ton père') et je remplace '1432' par 'je suis ton père' dans mon tableau.

    Mon fichier texte est de structuré comme suit:

    0 utut
    1 yrtrt
    2 tytyt
    Etc...

    Merci par avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    oui, c'est possible.


    ...dans le principe... (une solution) :

    A- On va d'abord mettre tous les couples num-texte dans un array (ca évitera de le recréer à chaque fois)
    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
     
    // creation de l array des couples num-texte
    function translate_create_array_num_to_txt_from_file()
    {
      $translate = array();
      // 1- ouverture du fichier
      $file = '..................';
      open(......);
      // 2- lecture du fichier ligne par ligne
      while(.......)
      {
        // 3- pour chaque ligne, on sépare le 1er (numéro) du 2ème élément (texte)
        $num = $ligne[0]; // numéro
        $txt = $ligne[1] // texte
        $translate[$num] = $txt;
      }
      return $translate;
    }

    B- Au début du fichier, on initialise l'array :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $translate = translate_create_array_num_to_txt_from_file();
    Ensuite, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    				<td class="NCC">'. $translate[$row2['ErrorNumber']] .'</td>

    N.B. Si tu as une base de données, pourquoi utiliser ici un fichier ?
    Dernière modification par Invité ; 14/06/2017 à 17h00.

  3. #3
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 436
    Points : 109
    Points
    109
    Par défaut
    N.B. Si tu as une base de données, pourquoi utiliser ici un fichier ?

    C'est pas faux, et du coup ça serait plus simple non?

    Du coup on ferait comment sans abuser?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Le mieux :

    • une table translate_error, avec les champs ErrorNumber et ErrorTexte
    • puis une jointure lors de la requête !

  5. #5
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 436
    Points : 109
    Points
    109
    Par défaut
    Je me suis créé une table pour la gestion de mes codes d'erreur, par contre pour la jointure ça va être chaud...
    Je regarde et je reviens si je trouve pas.

    Merci

  6. #6
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 436
    Points : 109
    Points
    109
    Par défaut
    Je n'arrive pas à faire de jointure, je ne comprends pas trop comment je peux faire.
    Ma requête principale pour les données de mon tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Query = "SELECT * FROM nccdetails WHERE '".$REFERENCE."' IN(NoType, 'Toutes') And Line = '".$Line."' And CSL = '".$Cell."' And ProcessDate BETWEEN '".$DateEndFull."' AND '".$DateStartFull."' Order by ProcessDate DESC";
    C'est dans cette même requête que je doit faire la jointure?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Query = "SELECT * FROM nccdetails, nnccode WHERE '".$REFERENCE."' IN(NoType, 'Toutes') And Line = '".$Line."' And CSL = '".$Cell."' And ProcessDate BETWEEN '".$DateEndFull."' AND '".$DateStartFull."' AND nccdetails.ErrorNumber = ncccode.NCCerrorNumber Order by ProcessDate DESC";
    J'ai fais ça mais ça ne fonctionne pas.

  7. #7
    Invité
    Invité(e)
    Par défaut
    bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM nccdetails, nnccode ........
    Déjà, il faut savoir ce que c'est qu'une JOINTURE SQL et comment ça marche... :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $Query = "SELECT * 
       FROM nccdetails DD
       INNER JOIN nnccode NN
          ON DD.ErrorNumber = NN.NCCerrorNumber
     
       WHERE '".$REFERENCE."' IN(NoType, 'Toutes') 
       AND Line = '".$Line."' 
       AND CSL = '".$Cell."' 
       AND ProcessDate BETWEEN '".$DateEndFull."' AND '".$DateStartFull."' 
       ORDER BY ProcessDate DESC";
    En écrivant la requête sur plusieurs ligne, c'est tout de suite plus facile à lire... et à déboguer.


    Au fait, personne ne t'a parlé de requête préparée ?
    (je te laisse chercher ce que c'est...)
    Dernière modification par Invité ; 15/06/2017 à 13h24.

  8. #8
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 436
    Points : 109
    Points
    109
    Par défaut
    Ok, je regarderai les requêtes préparées, merci pour l'info.

    Par contre, quand je fais ta requête j'ai une erreur, mais quand je fais la mienne elle fonctionne mais le résultat de ma requête est... bizarre..

  9. #9
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu ne nous dis pas l'erreur ...
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 436
    Points : 109
    Points
    109
    Par défaut
    Voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $Query = "SELECT Line, CSL, NoType, ProcessDate, a.ErrorNumber, b.sErrorNumber, b.sErrorText
    			  FROM nccdetails a
    			  INNER JOIN ncccode b 
    			  ON a.ErrorNumber = b.sErrorNumber
    			  WHERE '".$REFERENCE."' IN(NoType, 'Toutes')
    			  And '".$sNCC."' IN(ErrorNumber, 'Tous')
    			  And Line = '".$Line."' 
    			  And CSL = '".$Cell."' 
    			  And ProcessDate BETWEEN '".$DateEndFull."' AND '".$DateStartFull."' Order by ProcessDate DESC";
    EDIT:
    Je n'ai pas d'erreur mais je n'ai pas toutes les valeurs qui devraient être retournées...

  11. #11
    Invité
    Invité(e)
    Par défaut
    Si tu n'as pas forcement des numError sur chaque ligne, il faut passer en JOINTURE EXTERNE

    remplace
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    			  INNER JOIN ncccode b
    par
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    			  LEFT OUTER JOIN ncccode b

  12. #12
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    j'ai une erreur
    Je n'ai pas d'erreur
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Importer une image dans l'entête en fonction de la valeur dans une cellule
    Par guillaume7684 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/10/2016, 14h54
  2. récupération valeur dans un fichier XML
    Par lola79 dans le forum Langage
    Réponses: 14
    Dernier message: 20/04/2012, 12h20
  3. Réponses: 9
    Dernier message: 23/02/2012, 18h33
  4. Difficulté concernant la récupération de valeur dans un fichier xml
    Par Raphael1980 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 12/02/2010, 11h49
  5. [batch]récupération de valeur dans n fichiers
    Par Ted37 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 12/02/2009, 08h00

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