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 :

verification de données et recuperer les resultat du test et afficher


Sujet :

Langage PHP

  1. #41
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    Autre erreur: tu as fermé la boucle foreach trop top, ce qui fait que certains test ne sont pas exécutés.
    ouiiii vous avez raison je n'ai pas fait attention et cela m'a causé bcp de problemes j'etais entrain de modifier les tests pour voir pourquoi ils ne marchent pas alors qu'ils n'etaient meme pas dans le foreach
    merciiii

  2. #42
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Tu utilises quel editeur ?

  3. #43
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    Tu utilises quel editeur ?
    Notepad++

  4. #44
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!is_numeric($line['K']))
    ne me retourne aucune erreur si je mets du text à la colonne K avez vous une idée (c'est le cas pour plusieurs colonnes)

  5. #45
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par html.php Voir le message
    le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!is_numeric($line['K']))
    ne me retourne aucune erreur si je mets du text à la colonne K avez vous une idée (c'est le cas pour plusieurs colonnes)
    C'est correct chez moi. Tu dois bosser sur la mauvaise feuille.
    Ajoute ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objPHPExcel->setActiveSheetIndexByName("2G");
    juste avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, false, true);
    ça te permettra d'être sur de travailler sur la feuille 2G (ou 3G si tu veux le changer)

  6. #46
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Il y a aussi un autre problème:Excel traite tous les chiffres comme des double (float) et non des entiers. Tous tes tests utilisant is_int échouent donc même si les valeurs sont valides.

    Il faut donc les remplacer par la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function is_intval($value) {
         return 1 === preg_match('/^[+-]?[0-9]+$/', $value);
    }
     
    //puis dans le code, au lieu de 
    if(!is_int(x))
    //utiliser
    if(!is_intval(x))

  7. #47
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    je nous vous ai pas dit que j'ai un probleme quand j'ouvre le fichier que je vous ai envoyé je reçois une erreur
    could not open BDD_DE_BASE.xls for reading!File does not exist' in .........\Excel5.php on line 519
    donc depuis toute à l'heure je copie le contenu de la feuille dans le fichier test que vous avez envoyé pour tester le code . peut etre c'est un probleme d'extension qu'en pensez vous.?

    je sais c'est trop compliqué chez moi

  8. #48
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Min_altitude est défini comme –500–8000. Est-ce que cette altitude négative est correcte? D'autant que le texte précise "above the sea level".

    Et je pense que ton test n'est pas correct:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!(is_intval($line['AD']) and ($line['AD'] >= -8000 and $line['AD'] <= -500)))
    tu teste pour une altitude entre - 8000 et -500. Au moins - 8000 est incorrect je pense. le - n'est pas un signe négatif, mais plutôt un signe d'intervalle (comme 0–999 dans la ligne précédente).

  9. #49
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    Min_altitude est défini comme –500–8000. Est-ce que cette altitude négative est correcte? D'autant que le texte précise "above the sea level".

    Et je pense que ton test n'est pas correct:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!(is_intval($line['AD']) and ($line['AD'] >= -8000 and $line['AD'] <= -500)))
    vous avez raison ce n'est pas logique meme si c'est dans la fiche descriptive dailleur les examples qui sont dans la feuilles 2G sont positives donc je dois tester sur l'itervalle positive

  10. #50
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par html.php Voir le message
    je nous vous ai pas dit que j'ai un probleme quand j'ouvre le fichier que je vous ai envoyé je reçois une erreur donc depuis toute à l'heure je copie le contenu de la feuille dans le fichier test que vous avez envoyé pour tester le code . peut etre c'est un probleme d'extension qu'en pensez vous.?

    je sais c'est trop compliqué chez moi
    Aucune idée, mais par contre ton fichier est beaucoup trop lourd (1,2 Mo) et PHP mets trop de temps à l'analyser. Donc, moi aussi j'ai copié les tableaux dans un autre fichier qui ne fait que 27 Ko pour les mêmes données. Si ce sont des fichiers excel générés par un programme et qu'ils font tous cette taille, ça consommera énormément de mémoire.

  11. #51
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    Si ce sont des fichiers excel générés par un programme et qu'ils font tous cette taille, ça consommera énormément de mémoire.
    oui ce sont des fichiers issue d'un serveur , je ne sais pas comment reduire leur taille
    enfait ce qui compte le plus c'est que le code marche apres je vais demander a l'utilisateur d'adapter son fichier excel

  12. #52
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Ok, tu trouveras 2 fichiers en PJ: index.php (qui prends un fichier en local, à toi d'adapter ça ensuite), et invalid_cells.php que tu devras mettre dans le répertoire Classes.

    En fait, j'ai déplacé toutes les vérifications dans invalid_cells.php et les ai mises dans une fonction afin de pouvoir les réutiliser.

    Note que je n'ai pas corrigé les problèmes d'altitude négative dans les vérifications, donc il faut que tu les changes.

    Comme avant, ce script prends la feuille "2G", vérifie les cellules, et ensuite affiche à l'utilisateur dans un formulaire les champs invalides. L'utilisateur les corrige, puis soumets le formulaire. Les champs corrigés sont ensuite fusionnés avec le tableau contenant la feuille d'origine (stocké en session), puis le tout est re-vérifié.

    S'il y a encore des erreurs, les erreurs sont ré-affichés. Sinon, on passe à l'enregistrement dans une base de données (partie absente du script).

    Regarde, et dis-moi demain s'il y a des choses que tu n'arrives pas à suivre.

    Reste à faire:

    écrire les règles de validation pour 3G, à mettre dans une fonction dans invalid_cells.php, pour traiter 3G de la même manière.

    Et éventuellement le stockage de tout cela dans une base de données (MySQL ?).
    Fichiers attachés Fichiers attachés

  13. #53
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    merciiiiiiiiii infiniment votre aide.
    oui les données doivent etre stockées dans une BDD mysql

  14. #54
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    pouvez vous m'expliquer ce que affiche cette portion du code est ce que seleument les cellulles invalides parceque j'ai en resultat des champs rempli de valeurs et aussi bcp de champs vides et est ce qu'on peut afficher ça sous forme de tableaux?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php foreach($invalid_cells as $cell):?>
          <p>
            <label><?php echo $headers[$cell[1]] ?> </label>
            <input type="text" value ="<?php echo $sheetData[$cell[0]][$cell[1]]?>" name="validsheetdata[<?php echo $cell[0]?>][<?php echo $cell[1]?>]" />
          </p>
        <?php endforeach ?>
     
          <p><input type="submit" value="Envoyer" /></p>

  15. #55
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    les champs vide qui sont affiché sont peut etre causés des cellules vides du fichier excel qui sont aussi considérés invalides.
    qu'en pensez vous?

  16. #56
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par html.php Voir le message
    pouvez vous m'expliquer ce que affiche cette portion du code est ce que seleument les cellulles invalides parceque j'ai en resultat des champs rempli de valeurs et aussi bcp de champs vides et est ce qu'on peut afficher ça sous forme de tableaux?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php foreach($invalid_cells as $cell):?>
          <p>
            <label><?php echo $headers[$cell[1]] ?> </label>
            <input type="text" value ="<?php echo $sheetData[$cell[0]][$cell[1]]?>" name="validsheetdata[<?php echo $cell[0]?>][<?php echo $cell[1]?>]" />
          </p>
        <?php endforeach ?>
     
          <p><input type="submit" value="Envoyer" /></p>
    Ce code affiche les cellules invalides de la feuille excel, à partir des coordonnées contenues dans $invalid_cells

  17. #57
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par html.php Voir le message
    les champs vide qui sont affiché sont peut etre causés des cellules vides du fichier excel qui sont aussi considérés invalides.
    qu'en pensez vous?
    C'est possible. Ça dépend des règles de validation.

  18. #58
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    j'ai créer la fonction qui invalid_cells2 pour la verification des pour la feuille 3G

    et elle marche bien
    comment vous pensez doit etre le traitement
    c'est a dire le script doit analyser 2G et demander à l'utilisateur de corriger jusqu'à ce que tout va bien et il passe au traitement de 3G
    comment on peut le faire
    et est ce que vous avez une proposition pour resoudre le probleme des cellulles vide qui seront toujours considérées comme erronnées mem si l'utilisateur corrige les autre données ?
    et pour l'enregistrement dans une bases mysql comment on peut procèder?

    merci encore une fois

  19. #59
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Vois le MP que je t'ai envoyé, stp.

    L'idéal serait de mettre le traitement des feuilles dans une fonction (qui effectuera un traitement différent selon le nom du fichier), puis de réutiliser cette fonction pour chaque feuille. Cela permettrait de réutiliser le reste du script sans grandes modifications.

  20. #60
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par html.php Voir le message
    et est ce que vous avez une proposition pour resoudre le probleme des cellulles vide qui seront toujours considérées comme erronnées mem si l'utilisateur corrige les autre données ?
    et pour l'enregistrement dans une bases mysql comment on peut procèder?

    merci encore une fois
    si comme je le pense il s'agit de lignes qui sont entièrement vides, il faut indiquer dans la boucle foreach qu'il faut sauter les lignes qui ont les champs CELLID ou CID vides (car je pense que ces champs-là doivent toujours être présents, non?)

Discussions similaires

  1. Recuperer les resultats d'une source de données
    Par xoorus dans le forum WinDev
    Réponses: 7
    Dernier message: 18/01/2012, 11h38
  2. DataSet , Recuperer les resultats d'une requete
    Par siro1 dans le forum Windows
    Réponses: 10
    Dernier message: 01/10/2009, 17h39
  3. Recuperer les resultats d'une recherche (urllib/urllib2)
    Par Mysti¢ dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 27/03/2008, 04h29
  4. [DOM] recuperer les resultat d'une requete
    Par naouah dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/07/2007, 17h13
  5. recuperer les resultats
    Par PAYASS59 dans le forum Langage
    Réponses: 9
    Dernier message: 17/02/2006, 09h06

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