pb de requetes prenant du temps

pb de requetes prenant du temps - PHP - Programmation

Marsh Posté le 06-07-2004 à 11:16:46    

salut à tous
 
mon soucis est le suivant:
 
je fais 4 requetes sur une page mais cette derniere est trop longue car je dois afficher pres de 5000 lignes  
 
 
y a t il un moyen d'optimiser les requetes ?
$resul = execRequete("select ...." )  
afin d'eviter le commun while($num = objetSuivant($result)){$num->...}
 
 
merci

Reply

Marsh Posté le 06-07-2004 à 11:16:46   

Reply

Marsh Posté le 06-07-2004 à 11:18:53    

Comment veux tu avoir une réponse avec ces éléments ?


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 06-07-2004 à 11:25:04    

Voila un peu plus d'info
 
désolé
 
:
 
 
 
 
 $bd= new BD(LOGIN,PASSWORD,BASE2,SERVEUR);  
 
   /*si erreur on sort du programme*/
   if ($bd->enErreur()) exit;
   
     if (isset($par))
   {
    $t=urldecode($par);
    unset($par);
    $resultat = $bd->execRequete("SELECT * FROM série where cléParcelle = '".$t."' order by numNoRang,numNoSérie asc" );
    $serie9 = $bd->objetSuivant($resultat);
    $resultat29=$bd->execRequete("SELECT txtCode FROM parcelle where cléParcelle='".$serie9->cléParcelle."'" );
    $texteParcelle9 = $bd->objetSuivant($resultat29);
    $tt = $texteParcelle9->txtCode;  
    echo "<center><h3>Voici toutes les séries de la parcelle $tt</h3></center><hr>";
    echo "Faites votre choix :";echo"<a href = ./ajouter_serie.php?par=$t>Ajouter une serie dans $tt</a><br><hr><br>";
    $bd->libereMemoire($resultat);
    $resultat = $bd->execRequete("SELECT * FROM série where cléParcelle = '".$t."' order by numNoRang,numNoSérie asc" );
     
   }
   else
   {
    echo "<center><h3>Voici la liste des complètes des séries </h3></center><br><hr>";
    $resultat = $bd->execRequete("SELECT * FROM série order by cléParcelle,numNoRang,numNoSérie asc" );
   }
  ?>
   
      <!-- tableau permettant de stocker les différentes parcelles avec leurs caractéristiques sur plusieurs colonnnes-->
  <table border=1  align="center">  
   
  <!-- le tableau possède 4 colonnes code_libellé-rang_séries_plants-supprimer-->
   <tr align=center><td>Série</td><td>Quantité</td><td>Variété</td><td>P.G.</td><td>Depuis</td></tr>  
 
  <?php
 
   
   
 /*on selectionne les toutes les parcelles et on les met par ordre alphabétique*/
 
 
 
 $color=1;
 
   while($serie=$bd->objetSuivant($resultat)){
     
    /* colonne 1 du tableau, correspond au code*/
     $resultat2=$bd->execRequete("SELECT txtCode FROM parcelle where cléParcelle='".$serie->cléParcelle."'" );
     $texteParcelle = $bd->objetSuivant($resultat2);
     $texte=($texteParcelle->txtCode)."-".($serie->numNoRang)."/".($serie->numNoSérie);
     if(($color % 2)==0){
      echo "<tr CLASS=A0 align=center><td><a  href=sserie.php?sr=".$serie->cléSérie.">$texte </a></td>";
        }    
     if(($color % 2)==1){
      echo "<tr CLASS=A1 align=center><td><a  href=sserie.php?sr=".$serie->cléSérie.">$texte </a></td>";
        }
     $color++;
     
     /* colonne 2 du tableau, correspond au libellé*/    
     echo "<td>{$serie->numQtéArbre}</td>";
     
     $resultat3=$bd->execRequete("SELECT txtCode,txtNom from variété where cléVariété='".$serie->cléVariété."'" );
     
     if (($bd->nbrLignes($resultat3)) != 0 )
     {  
      $b=0;
      $variete=$bd->objetSuivant($resultat3);
      $var=($variete->txtCode)."|".($variete->txtNom);
      echo "<td><a  href=sserie.php?sr=".$serie->cléSérie.">$var</a></td>";
     }
   
     else
     {  
      $resultat4=$bd->execRequete("SELECT txtCode,txtNom from groupe where cléGroupe='".$serie->cléGroupe."'" );
      if(($bd->nbrLignes($resultat4)) != 0)
      {
       $b=1;
       $variete2=$bd->objetSuivant($resultat4);
          $var2=($variete2->txtCode)."|".($variete2->txtNom);
          echo "<td><a  href=sgroupe.php?grp=".$serie->cléGroupe.">$var2</a></td>";
     
      }
      else
      {  
       $b=2;  
        echo "<td> - </td>";
      }
     
     
     }  
     
     $resultat5=$bd->execRequete("SELECT txtLibellé from refportegreffe where cléPorteGreffe='".$serie->cléPorteGreffe."'" );
     if(($bd->nbrLignes($resultat5)) != 0)
     {
      $pg=$bd->objetSuivant($resultat5);
      $pg2=$pg->txtLibellé;
      echo "<td>$pg2</td>";
     }
     else
     {    
      echo "<td></td>";
     }
     
     
     if ( $b==0 ) echo "<td>{$serie->numAnnéePlantation}</td>";  
     if ( $b==1 ) echo "<td>{$serie->numAnnéePlantation}</td>";  
     if ( $b==2 ) echo "<td>{$serie->numAnnéePlantation}</td>";  
 
 
 
comme vous pouvez le voir y en beaucoup de requeteS
 
ce que je me demande est: en utilisant Union de mysql est il possible de baisser le temps d'execution (qui est de 8 sec )

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed