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 :

Optimisation de scripts PHP/MySQL [Débat]


Sujet :

PHP & Base de données

  1. #81
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par Linie
    Bon ben moi j'arrive comme un ch'veux sur la soupe avec pas mal de journée de retard mais j'ai une question :

    Pourquoi vous n'utilisai que des echo et jamais des print?

    Ca peut paraitre stupide mais si echo et plus performent que le print je prefeere tous changer maintenant plutot que tout a la fin de mon projet.
    C'est des queues de cerises.. Echo ca fait plutot basic pas beau... print est plus classe et en phase avec le reste des fonction php.

  2. #82
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Moi aussi j'ai eu ma période "cout tout pourri" et "printf trop prise de tête"
    Au final chacun a ses charmes.

  3. #83
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Swoög
    en fait, je pense que c'est principalement pour des questions de lisibilités et de possibilités :

    http://fr.php.net/print
    http://fr.php.net/echo

    comme tu peux le voir, echo offre plus de possibilitées au niveau de la sythaxe, notamment, se débarasser des parenthèses, here doc, [etc...]
    Merci pour les lien. Mais j'ai un handicap de taille pour faire dde l'info je deteste l'anglais et j'y comprend pas grand chose.

    Mais c'est interessant alors je vais prendre mon courage a deux mains.

  4. #84
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    fr au début des liens, ça veut dire quoi à ton avis? c'est la page en français qui est appelée, bien sur.

  5. #85
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par iubito
    Citation Envoyé par _Gabriel_
    salut,

    - les calculs répétés dans les boucles du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for&#40;$i=0;$i<sizeof&#40;$arr&#41;;$i++&#41;
    ca c'est pas bon!!!
    peux-tu préciser un peu, je capte pas là...
    ben à chaque tour de boucle la fonction sizeof(); est appelée et elle est relancée à chaque fois, donc on recalcule le sizeof du tablo $arr... alors que si ça devient une valeur fixe à chaque fois le tour de boucle est plus rapide.
    on compare une valeur fixe à une autre valeur fixe plutot que comparer une valeur fixe à une valeur sas cesse recalculée.

    j'espère que c assez clair.

  6. #86
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Je tiens à dire merci pour ce bench, car il m'a bcp servi et bcp appris.
    Alors merci d'avoir pris le temps de le faire et de le partager avec les co-internautes.

  7. #87
    Membre du Club Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Points : 63
    Points
    63
    Par défaut optimisation de mon code <-> interractivité
    bonjour
    Je ne sais pas si c'est la meilleur façon de faire ce que je veux faire (à savoir afficher en dessous mon formulaire des données en fonction des réponses de mon formulaire.
    J'ai écrit ça pour le formulaire (dans un page html:
    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
    <body>
    <table border=0 width="100%">
    <tr><td>
    <A Href="JavaScript&#58;top.close&#40;&#41;;"><IMG SRC="../../Global/Img/fermer.gif" Border=0 width="100" height="24"></A></center>
    </td>
    </tr>
    </table>
    <Hr>
    <p><ul><li>
        <center>
          <H2 align="left"><font size="6" face="Geneva, Arial, Helvetica, san-serif"> 
            <font size="6">Menu &#58;</font></H2>
        </center>
    <ol><ul>
    <li><A href="info.php"><font size=3>Vers page d'information pour tous <font></A>
    <br>
    <li>
     
    <form action="fo.php" method="post">
        Nom  &#58;  <input type="text" name="username"><br>
        Prénom&#58; <input type="text" name="prenom"><br>
        <input type="submit" name="submit" value="Ce qui me concerne">
    </form>
     
    </center>
    </body>
    et ça pour la page php qui fait le tris:
    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
    52
    53
    54
    55
    56
    57
    58
    <body>
    <div>
    <?php
    include&#40;'menu.htm'&#41;;
    ?>
    </div>
    <div>
    <?php
    $fichier=fopen&#40;"../../Export/EXP.csv", "r"&#41;;
    //$largeurcol=&#40;10,200,10,40,40,40,40,70,70&#41;;
    $orig="<table border=1 width=1300 bordercolor=#CCCAFF cellpadding=6 cellspacing=1>";
    $orig .= "<tr bgcolor=#CCCAFF valign=center><td width=80><FONT size=2><b>Demande N°</b></font></td><td width=400><FONT size=2><b>Description de la demande</b></font></td><td width=50><FONT size=2><b>Car</b></font></td><td width=80><FONT size=2><b>Nom CI</b></font></td><td width=80><FONT size=2><b>Prénom CI</b></font></td><td width=60><FONT size=2><b>Phase</b></font></td><td width=65><FONT size=2><b>Statut</b></font></td><td width=80><FONT size=2><b>Date de création</b></font></td><td width=80><FONT size=2><b>Date butée</b></font></td><td width=60><FONT size=2><b>Prénom bénéficiaire</b></font></td><td width=60><FONT size=2><b>Nom bénéficiaire</b></font></td></tr>";
    while &#40;!feof&#40;$fichier&#41;&#41;  //on parcourt toutes les lignes
      &#123;
       $ligne = fgets&#40;$fichier, 300&#41;; // lecture du contenu de la ligne
       $tabli =explode&#40;";",$ligne&#41;;
       $tempo = $tabli&#91;10&#93;;
       for&#40;$i=10;$i>2;$i--&#41;
         &#123;
          $tabli&#91;$i&#93;=$tabli&#91;$i-1&#93;;
         &#125;
       $tabli&#91;2&#93; = $tempo ;
       $_POST&#91;'username'&#93;;
       $_REQUEST&#91;'username'&#93;;
       import_request_variables&#40;'p', 'p_'&#41;;
       $_POST&#91;'prenom'&#93;;
       $_REQUEST&#91;'prenom'&#93;;
       import_request_variables&#40;'p', 'p_'&#41;;
       $p_username = strtoupper&#40;$p_username&#41;;
       $p_prenom = strtoupper&#40;$p_prenom&#41;;
     
       if&#40;$tabli&#91;3&#93;=="$p_username" && $tabli&#91;4&#93;=="$p_prenom"&#41;
       &#123;
        $orig .= "<tr><td>";
        $regroup = implode&#40;"</td><td>", $tabli&#41;;
        $orig .= $regroup;
        $orig .= "</td></tr>";
       &#125;
       elseif&#40;$p_username== "PER" && $p_prenom == "AL"&#41;
       &#123;
        $orig .= "<tr><td>";
        $regroup = implode&#40;"</td><td>", $tabli&#41;;
        $orig .= $regroup;
        $orig .= "</td></tr>";
       &#125;
     
      &#125;
    $orig .= "</table>";
    fclose&#40;$fichier&#41;;
    if&#40;$p_username!=null&#41;
    &#123;
    $b = html_entity_decode&#40;$orig&#41;;
    echo $b;
    &#125;
     
    ?>
    </div>
    </body>
    Désolé pour la longueur du message.
    Est ce que ce code vous parraît satisfaisant?
    Peut on faire autrement que de passer par le $orig et de concaténer mes chaines de caractère?

    Merci Pierre

    P.S. si ce code peut servir à quelqu'un servez vous

  8. #88
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    j'ai pas bien compris ton truc, mais si tu veux concaténer du bazar pour l'écrire plus loin, utilise une variable comme t'a fait, sinon tu peux écrire directement aussi echo "....."

    bon pour la lisibilité de ton code, vire tout de suite les <font>, <b> et autres trucs de ce genre, et passe aux styles CSS, tu verras, ça sera + facile à maintenir ton code, et le code sera + léger et + lisible.
    Membre éclairé, lol !

  9. #89
    Membre du Club Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    Je demande de tout afficher à la fin car il sagit de tableaux en code html
    et je ne crois pas que ça marchera si j'utilise echo.

    Merci pour le conseil des CSS (cependant je n'y connais vraiment rien)
    mais je n'ai jamais manipulé de CSS est-ce facile à mettre en place?

    Merci Pierer

  10. #90
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    CSS est extrêment smple à mettre en place : la Doc CSS au Format HTML Zippé ou au Format PDF
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  11. #91
    Membre du Club Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    est ce que le language peut poser des problèmes de compatibilité avec des vieux browsers ou des browsers peu communs (mozilla, epiphany, ...)?
    est-ce que les pages seront plus longues à charger?

    merci

  12. #92
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Bien sur que si echo fonctionnera, echo envoit du texte, si ce texte est du html valide alors ton navigateur en fera quelque chose. Ceci dit il existe des librairies pour générer une table html directement, ce qui te fait un code plus lisible.

  13. #93
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Les CSS rendent les pages bcp plus legeres, donc rapides, mais en effet de tres vieux navigateurs ne les interpretent pas tres bien ou pas du tout. Enfin franchement les navigateurs étant gratuits, qui traine encore un ie4 ou un ns4?
    Je conseille de développer via Mozilla (ou galeon, thunderbird) qui respecte les standards, puis de vérifier dans IE si c ok.

  14. #94
    Membre du Club Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    Selon toi cedric le code suivant devrait fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?
    echo "<table>";
    echo "</tr>";
    for&#40;$i=0;i<5;i++&#41;
    &#123;
      echo "<td>";
      echo $i;
      echo "</td>";
    &#125;
    echo "</tr>";
    echo "<table>";
    ?>
    j'ai un doute mais je vais essayer demain.

    Bon je sent que CSS est intéressant je vais me renseigner merci pour le site.

  15. #95
    En attente de confirmation mail
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par cedricgirard
    Je conseille de développer via Mozilla (ou galeon, thunderbird) qui respecte les standards, puis de vérifier dans IE si c ok.
    Plutot Firebird (enfin firefox maintenant) parce que Thunderbird c'est un client mail
    Citation Envoyé par lunart
    Selon toi cedric le code suivant devrait fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?
    echo "<table>";
    echo "</tr>";
    for&#40;$i=0;i<5;i++&#41;
    &#123;
      echo "<td>";
      echo $i;
      echo "</td>";
    &#125;
    echo "</tr>";
    echo "<table>";
    ?>
    j'ai un doute mais je vais essayer demain.

    Bon je sent que CSS est intéressant je vais me renseigner merci pour le site.
    Oui ca devrait marcher mais remplace les echo "bidule" par des echo 'bidule', ca sera d'autant plus rapide. Et puis à la fin tu as écrit <table> au lieu de la balise fermante </table>

  16. #96
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    et y'a un </tr> au début, ça devrait être un <tr>... mais le principe est là.
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      echo "<td>"; 
      echo $i; 
      echo "</td>";
    s'abrège très bien en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      echo '<td>' . $i . '</td>';
    il vaut mieux faire une concaténation plutôt que plusieurs echo.
    Membre éclairé, lol !

  17. #97
    Membre du Club Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    merci pour les conseils
    désolé d'avoir fait ça à la vavite.
    Pierre

  18. #98
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    Très intéressant ce post !
    Avec le bench en aide,cela pourrait faire l'objet d'un tuto.

    Sinon je me posais la question à partir de quand est-il interessant de faire des mysql_free_result().Je me osuviens avoir essayé sur un script après une grosse requete avec bcp de resultats mais en ajoutant d'autres mysql_free_result(),ca n'a rien changé.

    Sinon j'ai une autre astuce( il ne me semble pas l'avoir vu ):
    Plutot que dans une boucle afficher a chaque boucle le texte,préférez l'enregistrer dans une variable pour l'afficher après:
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for&#40;$i = 0;$i < 4;$i++&#41;&#123;
            echo '<select value="'.$i.'">'.$i.'</select>';
    &#125;
    Préferez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for&#40;$i = 0,$string = '';$i < 4;$i++&#41;&#123;
            $string .= '<select value="'.$i.'">'.$i.'</select>';
    &#125;
    echo $string;
    Pour éviter des for(),on peut faire aussi à la mode du C:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while&#40;$i-- >0&#41;&#123;&#125;
    Et pour les fichiers textes,il vaut mieux lire le fichier ligne par ligne je crois et s'arrêter une fois que l'info cherchée est trouvée plutot que de lire le fichier en entier puis de chercher après.

    De manière générale ,evitez de recreer des fonctions qui existent déjà:
    Pas de fread(par exemple) puis de explode(),mais plutot fgetcsv().

    J'ai lu qque part aussi que mysql_fetch_object() etait perceptiblement + long que mysql_fetch_array() ou autre.

    En tt cas c'est un super post ,j'ai appris plein de trucs
    MErci à tous

  19. #99
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous et à toutes, ce topic est vraiment interressant, on y apprends pas pas mal de choses !
    J'aimerai savoir pour ma part si le fait d'utiliser beaucoup d'objets dans ses projets ralentissait considérablement le script ou bien c'est négligeable ?
    Je me pose la question si vous pouvez y répondre même si elle peut paraitre un peu bête.

    D'avance je vous remercie.

  20. #100
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    C'est une question interessante et je crois que cela peut ralentir,mais après je sais pas .
    Moi j'en avais une autre:vaut-il mieux utiliser des fonctions mysql ou php ?
    MD5 ou md5 ?

Discussions similaires

  1. [Débutant] Accélérer et optimiser ses scripts PHP
    Par Metallic-84s dans le forum Langage
    Réponses: 6
    Dernier message: 24/03/2006, 13h37
  2. [MySQL] [SGBD] Script PHP/MYSQL d'access FTP
    Par ChRom dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/01/2006, 02h52
  3. Réponses: 9
    Dernier message: 05/01/2006, 13h24
  4. Recherche Login Script PHP & MySQL
    Par whbh dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 01/12/2005, 17h45
  5. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 09h33

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