Chargement de la page très long.

Profil introuvable

Profil introuvable Le 7 mai 2017 à 11:44 (Édité le 25 janvier 2019 à 17:53)

Bonjour,
Je voulais juste savoir si c'est normal que la page avec quelques requêtes SQL en while, soit aussi longue à charger ? Jusqu'à 9s parfois. J'utilise EasyPHP et PHPmyadmin. 😀
Balatharas

Balatharas Le 7 mai 2017 à 11:50

Est ce que tu utilises JSONAPI ? Moi je l'utilisais et le pb venait du fait que jsonapi cherchait mais ne trouvait rien pour se connecter
Profil introuvable

Profil introuvable Le 7 mai 2017 à 11:56

Non, j'utilise de simples requêtes SQL du style "prépare(SELECT...)".
Je ne vois pas pourquoi ça prend autant de temps... J'espère que sur le net, ça ira plus vite. 😀
Zbuu

Zbuu Le 8 mai 2017 à 10:01

Bonjour,

Tu as peut être un problème dans ta boucle ? Pouvons nous voir ton code ? 
Bladoom

Bladoom Le 1 juin 2017 à 11:45

Bonjour,
J'ai a peu près le même problème. Dans mon code il y a une boucle while qui ressort aussi des images stocker en BDD et dans une dossier "image",  de plus j'utilise un template contenant du js.
Je ne sais pas d'où peu venir le problème de chargement prenant énormément de temps. Du template ? Ou du stockage de mes images en bdd ( varchar ) qui met du temps a charger ?
Merci d'avance ! 😘
TheOldNoob

TheOldNoob Le 1 juin 2017 à 12:25

Salut les gens !
La boucle while, est une boucle facile a utilisé que tout le monde utilise un peu trop a tord.

Oubliez la, vous avez du for, et du foreach bien plus efficace qui vous évitera se genre de problème.

Après, je fait que supputé, mais j'ai pas vos code sous les yeux et encore aucun dont divinatoire donc je peu pas dire si ça viens de votre boucle while qui par exemple, n'aurais pas de condition pour se finir. Car, oui... la boucle while est une boucle qui va s’exécuter tant qu'elle sera TRUE. 

Je vous renvoie vers la doc officiel : 
http://php.net/manual/fr/control-structures.while.php
Bladoom

Bladoom Le 1 juin 2017 à 17:48

Hello TheOldNoob !
Voilà mon code, j'ai essayer avec WHILE et FOREACH ( présent actuellement dans mon code ) mais ca ne change pas grand chose au chargement bien long :
try
{
$bdd = new PDO('mysql:host=xxxxxx;dbname=xxxxx', 'xxxx', 'xxxx');
}
catch(Exception $e)
{
    // En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}

// Si tout va bien, on peut continuer

// On récupère tout le contenu de la table fiche_voiture
$donnee = $bdd->query('SELECT * FROM fiche_voiture f
LEFT JOIN membres m
ON f.id_membre = m.id WHERE m.id='.$idmembre);

// On affiche chaque entrée une à une

?>

<?php 
foreach($donnee as $donnees)
{
    ?>
    
  <img class="mySlides" src="photo/<?php echo $donnees['image1'];?>" style="max-height: 450px; max-width: 940px;">
  <img class="mySlides" src="photo/<?php echo $donnees['image2'];?>"  style="max-height: 450px; max-width: 940px;">
  <img class="mySlides" src="photo/<?php echo $donnees['image3'];?>" style="max-height: 450px; max-width: 940px;">

  <button class="w3-button w3-black w3-display-left" onclick="plusDivs(-1)">?</button>
  <button class="w3-button w3-black w3-display-right" onclick="plusDivs(1)">?</button>
</div>
                    

                                            <?php
}

$donnee->closeCursor(); // Termine le traitement de la requête

?>
                                <h2>A propos</h2>
                                <p>   
                              <?php echo $donnees['message']; ?></p>
                       
                                <h2>Informations complémentaires</h2>
                                <p>Marque : <?php echo $donnees['marque']; ?></p>
                                <p>Prix: <?php echo $donnees['prix']; ?> / <?php echo $donnees ['prix2']; ?></p>
                                <p>Téléphone: <?php echo $donnees['telephone']; ?></p> 
TheOldNoob

TheOldNoob Le 1 juin 2017 à 18:02

ok, 
ligne 20 a 22 aucun intéret.
Ensuite, pourquoi séparé la ligne 23 de la ligne 39? fait tout ton traitement d'un coup.

Voilà comment je m'y prend pour faire une boucle :

<div class="row">
      <?php        
         $res = $pdo->prepare('SELECT * FROM mlk_gallery ORDER BY id ASC');
         $res->execute();
         $creation = $res->fetchAll(PDO::FETCH_ASSOC); 
         foreach($creation as $crea){
       ?>
         <div class="col-md-6">
            <div class="papers text-center">
               <?php echo '<img src="img/'.$crea['picture'].'" alt="Photo de '.$crea['title'].'">'?>
               <h4 class="notopmarg nobotmarg"><?php echo $crea['title']; ?></h4>
               <p>
                  <?php echo $crea['desc_gal_mlk']; ?>
               </p>
            </div>
         </div>
         <?php } ?>
      </div>
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte