[PHP] Affichage trop long

theflagada Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -  
theflagada Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Voila, j'ai un petit souci; je fais la requete suivante qui me permet de lister toutes les donnees de ma table dans un beau tableau tout propre; jusque la pas de probleme. Seulement j ai 40000 donnees dans ma table et la page met 8 min voire plus a s afficher .... cela vient des <tr> et <td> ds la variable$lo. seulement si je veu un beau tableau , je vois pas comment faire .... si quelqu un a une idee....
Merci d avance

<?php
$request = "SELECT DISTINCT Dest,Count,Dia FROM current ORDER BY Dest";
if ($relt = mysql_query($request)){
if(mysql_num_rows($relt)!=0){
while($result=mysql_fetch_assoc($result)){
$a=$result['Dest'];
$b=$reult['Count'];
$c=$reult['Dia'];
$lo .=" <tr >
<td >".$a."</td>
<td >".$b."</td>
<td >".$c."</td>
</tr>";
}
}else $report='You have no data!';
}
else{
echo "Error";
}
$OUT="
<table>
<tr >
<td >Dest</td>
<td >Count</td>
<td >Dia</td>
</tr>
$lo

</table>
</form>
";

echo $OUT;

?>
A voir également:

2 réponses

kilian Messages postés 8854 Statut Modérateur 1 526
 
Il faut découper ta page en plusieurs avec des liens "suivant" et "précédent".

Par exemple, dans ces liens tu peux mettre le le numéro de la page:

<a href="catalogue.php?page=" . $page_courante +1 . '">Suivant</a>

Puis tu récupères ce numéro dans la page suivante.
Ensuite l'astuce consiste à faire une requête limitée.
Par exemple avec mysql tu as la clause LIMIT début, combien

A la place de début, tu mets le nombre de lignes que tu veux dans une page, multiplié par le numéro de la page (si la première c'est zero) et dans combien tu mets le nombre de lignes:

mysql_query("SELECT ....... FROM......WHERE......LIMIT " . $nb_lignes * $page_courante . ", " . $nb_lignes);

0
theflagada Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci pour ta solution,
je vais essayer de ce pas!!!
0