pb de requetes prenant du temps - PHP - Programmation
Marsh Posté le 06-07-2004 à 11:18:53
Comment veux tu avoir une réponse avec ces éléments ?
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 )
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