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 :

Problème echo select


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut Problème echo select
    Bonjour tout l'monde,

    j'ai un petit problème:

    j'essaie d'affiche un <select> composé de plus de 10000 lignes. Je sais, c'est beaucoup mais c'est comme ça.

    J'extrait donc les données de ma DB et génère le select que je sauve dans une string. Je fais un echo, et là, je n'ai pas tous mes enregistrements et le flux html est coupé.

    Plus fort, je fait 2 echo de ma string, et là, mon premier select est complet et pas le deuxième. Pareil avec 3 echo, le dernier select ne s'affiche pas complètement.

    Quun aurait-il une idée ?
    Merci
    Je suis en php5.0.4 et apache 2.0.54 sur Vista...

  2. #2
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    Tu as essayé d'afficher petit à petit le contenu de ton select ?
    Par exemple une boucle qui affiche une par une les options de ton select.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut
    Merci thecanea,

    je viens de (ré)essayé comme tu me dis mais j'ai le même résultat...
    J'ai aussi enlevé les balise <select> pour afficher le contenu de manière brute mais le résultat est toujours incomplet. Je pense donc que ce n'est pas lié au select.

  4. #4
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    J'extrait donc les données de ma DB et génère le select que je sauve dans une string.
    Tu es sûr de bien récupérer les données ? Ton select fonctionne ?

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut
    Merci encore thecanea,

    oui, j'en suis sur. J'ai enregistré mon select dans un fichier texte et le contenu est complet.
    Si ça peut aider, le nombre d'élément dans le select "incomplet" varie. Il peut une fois m'afficher 8500 éléments et un "refresh" après ne m'en afficher que 5000

  6. #6
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    Tu pourrais afficher ton code ?
    Ce serait peut être plus parlant alors pour que nous puissions t'aider

  7. #7
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    Pourquoi est-ce que tu passses par une chaine de caractères ?
    Tu peux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    echo "<select>";
    while ($val = mysql_fetch_array($res) ) {
       echo "<option>" . $res . "</option>";
    }
    echo "</select>";
    Gillou

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut
    Salut LeGilou,

    je passe par une chaine pour pouvoir l'enregistrer dans un fichier texte (pour voir si tous les éléments ont été chargé) et pour pouvoir l'afficher plusieurs fois (ce qui m'a permis de constater un comportement étrange: uniquement le dernier n'est pas complet)

    Sinon, sur les conseils de thecanea j'ai déjà fait ce test.

    Pour le code thecanea, rien de très compliqué:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $societies=ic_an_p_societies_handler::get_xoops_select();
    $select="<select>";
    foreach($societies as $key => $society){
    	$select.="<option value='".$key."'>".$society."</option>";
    }
    $select.="</select>";
     
    $fp = fopen ("donnees.txt", "w");  
    fseek ($fp, 0);
    fputs ($fp, $select);
    fclose ($fp);
     
    echo $select."<br/>";
    echo $select."<br/>";

  9. #9
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    Il peut une fois m'afficher 8500 éléments et un "refresh" après ne m'en afficher que 5000
    Ton fichier .txt généré est complet lui ?
    uniquement le dernier n'est pas complet
    Tu parles du deuxième <select> ?
    Tu as essayé de créer conjointement deux select différents (via id) et de les afficher ?
    Normalement ça devrait poser autant problème... Mais c'est bizarre que pour deux éléments identiques seul le premier s'affiche bien...

    Peut être est-ce due au temps de chargement de la page ? Si tu as plusieurs milliers d'options, il faut peut etre attendre qu'elles se chargent...

  10. #10
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Cela peut-être du au memory_limit() qui est saturé du fait que tu possède une chaine de caractères enorme dans une variable.

    D'autres parts, quel est l'intérêt d'avoir un <select/> de 10000 valeurs, car je suppose, et éspère, que les utilisateurs de ton application ne devront pas aller séléctionner de valeur dedans, ce qui serait monstrueusement laborieux.

    Aussi, ne serait-il pas préférable en tous points d'ajouter une pagination ?
    (Et d'afficher les sociétés dans un tableau ? )

  11. #11
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Je rejoint ThomasR concernant concernant l'affichage paginé.

    Cela dit, le problème m'intrigue.
    Si à la place d'enregitrer le code HTML complet dans ta chaine de caractères ("<SELECT...OPTION.../SELECT>"), tu re-parcours le tableau $societies.
    Est ce que ca fonctionne ? Est ce que le temps de réponse est correcte ?

    Gillou.

  12. #12
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut
    Oui, mon fichier .txt généré est complet.

    Pour les 2 select à créer conjointement je ne suis pas certain d'avoir compris. J'ai créer un 2eme select distinct et j'ai les mêmes comportements: le dernier affichage d'un élément "volumineux" stoppe le flux html.
    Et j'ai beau attendre, les données n'arrivent pas.

    Pour le memory_limit, je l'ai mis à 58M (c'est beaucoup mais c'est fait exprès) et ça ne change rien...

    Pour la pagination, je suis d'accord avec vous mais moi aussi "le problème m'intrigue".

    Sinon, le parcours du tableau se déroule sans problème, si je n'affiche que les id par exemple. Si j'affiche le nom, ça bloque (trop de données!?).

    Infos: si je fait un print_r de mon tableau, j'ai la même chose qu'avec le select (incomplet pour le dernier)
    Aussi: cela ne stoppe pas le script php: en effet, j'ai mis la sauvegarde après l'affichage dans le script php et, malgré l'affichage incomplet, la sauvegarde dans le ficher se fait quand même.

    J'ai vraiment l'impression que c'est au niveau de l'affichage. Mon flux html semble se couper mais pourquoi ? Y aurait-il une limite du contenu html à renvoyer ?

    En tout cas merci de prendre du temps pour mon problème !

  13. #13
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut
    Infos complémentaire:

    je viens de faire le test à partir d'une autre machine et là, ça fonctionne.
    Je me connecte au même serveur web avec le même browser.
    Par contre, l'une est en Vista et l'autre (celle où ça fonctionne) est en Windows 2000 .

    Je ne suis pas certain à que ce soit ça le problème
    et si c'est ça, je me demande quelle est l'origine exacte de ce problème ?

  14. #14
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Grosse coincidence, j'étais ce matin en train de répondre à ton problème et je me retrouve cet après midi avec le même genre de truc...

    Quel navigateur (+version) utilises-tu sur Windows 2000 ? sur Vista ?

  15. #15
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Dans ce cas ton problème c'est les performances de ton ordinateur, ce qui a pour effet d'empecher ton navigateur d'afficher correctementtes 10000 de codes (trop de ressources utilisés ?)

  16. #16
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut
    Désolé LeGilou mais j'suis content de pas être le seul

    Je suis sur FireFox 3.0.3 sur Vista Pro
    Et pareil sur Windows 2000

    En temps j'ai fait le test sur plusieurs machines et c'est toujours sur Vista que ça va pas...

    ThomasR, pour les ressources , je pense que c'est ok, car si j'affiche plusieurs fois le même select, il n'y a que le dernier qui ne s'affiche pas complètement.

    On m'a déjà parlé des limitations des connections dans Vista... c'est ma seule piste.
    Je continue à chercher

  17. #17
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    car si j'affiche plusieurs fois le même select, il n'y a que le dernier qui ne s'affiche pas complètement
    Justement cela conforte mon idée, le premier ca va, le second ca ne passe pas à cause de soucis techniques (mémoire saturée, cache saturée etc) serveur / locaux.

  18. #18
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Thomas,

    Si il affiche 3 fois le select, c'est le 3eme qui ne fonctionne pas. Donc ces ressources permettent d'afficher 2 select.
    Par contre, si il affiche 2 select, cette fois c'est le 2eme qui pose problème.

    Donc ca n'est pas un problème de ressources.

    Gillou.

  19. #19
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Ha oui en effet c'est très louche
    Ca dépasse mes maigres compétences en PHP

  20. #20
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonsoir,

    Ca avance ce problème ?
    Hair_peace, as tu trouvé quelque chose ?

    Gillou.

Discussions similaires

  1. Problème de "select" avec des valeurs a null
    Par SchpatziBreizh dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2005, 17h08
  2. Problème de select sur une date (DATETIME....)
    Par zeldoi5 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/05/2005, 12h19
  3. [XSL] Petit problème de selection d'un noeud
    Par Greg L. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/04/2005, 10h39
  4. Problème avec select top
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 10/12/2004, 15h55
  5. problème DBLookupListBox selection
    Par kardevlop dans le forum Bases de données
    Réponses: 11
    Dernier message: 17/08/2004, 12h53

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