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 :

Optimisation de code PHP


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut Optimisation de code PHP
    Bonjour tout le monde !

    Je suis actuellement en stage dans une entreprise et je dois optimiser un script PHP/MySQL qui est assez long à s'afficher à l'écran.
    Il s'agit de la page de création des plannings des employés.
    Voici une ébauche pour vous faire voir de quoi il s'agit :


    Les traits rouges masquent les noms des employés.
    Je vais décrire comment s'organise actuellement le codage du script.


    Chaque ligne représente 1 formulaire.

    Pour chaque jour, on a le choix d'affecter l'employé à un poste et à un projet.
    Pour le poste (1er select) il n'y a que 3 choix possibles donc assez rapide, mais pour la liste des projets (2eme select) il y en a beaucoup (environ 200 projets actifs).

    Donc afficher cette cellule 7 fois par ligne multiplié par x employés ça met du temps à tout charger.

    Je ne sais pas trop comment optimiser l'affichage pour avoir un gain de temps conséquent. J'ai déjà créer plusieurs filtres qui permettent d'avoir moins de résultats à afficher mais c'est toujours assez long.

    Si vous avez des suggestions ou des conseils, je suis tout ouï.
    Merci pour votre aide

    Cordialement
    mEhO

  2. #2
    Membre confirmé
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Points : 586
    Points
    586
    Par défaut
    Si chaque projet a un nom assez explicite (et connu par le chef de projet) , pourquoi ne pas mettre un champ texte où on commence à taper le nom du projet ("projx...") que l'on veux assigner, et une petite liste afficherait les projets commençant "projx" en dynamique ?

    Je ne sais pas comment c'est réalisable, mais j'avais déja vu de telles applications. Je ne sais pas non plus si tu obtiendras un gain de temps. Ca dépendre de la technologie employée je suppose

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    C'est intéressant, j'y ai pensé de mettre de l'Ajax, mais je ne m'y connais pas trop.
    Pour l'instant c'est juste du Php/MySQL avec une touche de Javascript.

    Le problème aussi c'est qu'on doit pouvoir consulter les plannings et savoir sur quel projet est affecté l'employé. Avec le champs texte on ne le saura pas.

    Merci de ton aide

  4. #4
    Membre confirmé
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Points : 586
    Points
    586
    Par défaut
    C'est l'occasion de s'y mettre alors

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 267
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 267
    Points : 8 565
    Points
    8 565
    Billets dans le blog
    17
    Par défaut
    Et si tu faisais de l'asynchrone ou du simili-asynchrone ?

    Tous les champs seraient vides, ou du moins contiendraient le strict minimum tel que la tâche attribuée, et remplis à la demande avec du javascript.

    Ex. :

    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
    <html>
        <head>
            <script type="text/javascript">
                function loadData( )
                {
                    return [ "France", "Italie", "Espagne", "Allemagne" ] ;
                }
     
                function populate(select)
                {
                    var data = loadData( ) ;
     
                    for ( i = 0 ; i < data.length ; i++ ) {
                        select.options[select.options.length] = new Option(data[i]) ;
                    }
                }
            </script>
        </head>
        <body>
            <form>
                <select name="country" onclick="populate(this)"></select>
            </form>
        </body>
    </html>
    Tu peux éventuellement construire le contenu de loadData( ) avec du PHP ou en appelant un script PHP avec du "AJAX".

  6. #6
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    Ahh ça oui, ça m'intéresse fortement !
    Comment ça se passe pour les requêtes qui alimenteront mes "select" ?

    Merci bien Séb

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 267
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 267
    Points : 8 565
    Points
    8 565
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par MeHo_ Voir le message
    Ahh ça oui, ça m'intéresse fortement !
    Comment ça se passe pour les requêtes qui alimenteront mes "select" ?
    Il faut passer par un objet JS XMLHttpRequest (non standardisé, mais c'est en cours) qui appelle un script PHP via HTTP avec ou sans paramètre selon les besoins.
    Le script PHP en question retourne les projets dispos pour l'employé donné au format JSON http://fr.php.net/json, XML ou simple texte. Le JSON est plus simple car directement interprétable par la fonction JS qui traite le retour.
    Ensuite le script JS ajoute le résultat au <select> sollicité comme montré plus haut.
    Tu peux rajouter un petit cache si tous les employés ont les mêmes projets affectables.

    Je ne connaîs pas très bien XMLHttpRequest, mais l'idée et là, y'a plus qu'à consulter la doc http://www.w3.org/TR/XMLHttpRequest/ et à poster sur le forum JS en cas de besoin

  8. #8
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    Merci beaucoup je vais voir ce que je peux faire
    Je vous tiendrai au courant

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    Tu peux trouver des tutoriaux concernant Ajax sur ajax.developpez.com
    Les meilleurs cours et tutoriels AJAX

    Tu peux notamment t'interresser au framework prototype qui facilite l'utilisation d'Ajax.

  10. #10
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    Voila mon probleme est résolu.
    J'ai utilisé de l'Ajax et ça marche nikel

    http://www.developpez.net/forums/d73...r-select-ajax/

    Merci de votre aide

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

Discussions similaires

  1. [MySQL] Optimisation du code PHP
    Par Megchan dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 17/12/2014, 11h47
  2. [MySQL] Optimisation de Code Php Jquery
    Par PainkillerDev dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 09/07/2013, 18h18
  3. Optimisation de code php
    Par Oprichnik dans le forum Humour Informatique
    Réponses: 2
    Dernier message: 16/04/2011, 21h53
  4. Optimisation du code PHP vs SQL
    Par persia dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 18/11/2010, 21h10
  5. Question optimisation de code PHP/HTML
    Par heavenvibes dans le forum Langage
    Réponses: 7
    Dernier message: 14/08/2008, 12h57

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