Bonjour,
J'ai un problème PHP, je suis chez un hebergeur (reagi.com) et mes pages sont tout le temps en timeout... j'ai regardé, je crois que ca viens des commentaires, donc je post ici le code pour avoir vos avis d'optimisations.
Merci de votre aide :?
J'ai un problème PHP, je suis chez un hebergeur (reagi.com) et mes pages sont tout le temps en timeout... j'ai regardé, je crois que ca viens des commentaires, donc je post ici le code pour avoir vos avis d'optimisations.
Code:
// Début de l'affichage des news une par une ---------------------------------------------------------------------------------
if($_GET[id]="$_GET[id]"){
$query = "SELECT id,cat,membre,idmembre,titre,news,date,heure,nbvues,valide FROM news WHERE valide='oui' AND id=".$_GET[id]."";
$res = mysql_query($query) or die($query.'<br />'.mysql_error());
$result = mysql_num_rows($res);
if($result!=0){
$row = mysql_fetch_array($res);
mysql_query("UPDATE news SET nbvues=nbvues+1 WHERE id='$_GET[id]'");
// Début appel de la fonction bb_code
$message = $row[news];
$message = bb_code($message);
// Fin appel de la fonction bb_code
?>
<h1 class="titre"><? echo("$row[titre]"); ?></h1>
<div class="dots"></div>
<? echo("<span class=\"titre\">Posté par <a href=\"membres-profil-$row[idmembre].html\">$row[membre]</a> le $row[date] à $row[heure] dans la rubrique $row[cat], lues $row[nbvues]</span>"); ?>
<p><? echo("$message"); ?></p>
<p><? if($resultadmin!=0){ echo("<a href=\"admin-news-editer-$_GET[id].html\">Editer</a>"); } ?></p>
<h2 class="commentaires">Commentaires (<a class="addcommentaire" href="comnews-<? echo("$row[id]"); ?>.html">Ajouter un commentaire</a>)</h2>
<div class="dots"></div>
<?
}
$limite = 10;
if((!$_GET[si])||(!is_numeric($_GET[si]))) {$_GET[si]=0;}
$debut=$_GET[si];
$query = "SELECT * FROM commentaires WHERE sid=".$_GET[id]." AND type='1' ORDER BY id DESC LIMIT $debut,$limite";
$res = mysql_query($query) or die($query.'<br />'.mysql_error());
$result = mysql_num_rows($res);
if($result!=0){
// Début page par page
$query3 = "SELECT COUNT(id) FROM commentaires WHERE sid=".$_GET[id]." AND type='1'";
$res3 = mysql_query($query3) or die($query3.'<br />'.mysql_error());
$row3 = mysql_fetch_array($res3);
echo("<p class=\"pages\">");
$nbpages=ceil($row3[0]/$limite);
if($debut>0){
$debutp=$debut-$limite;
if($debutp<0) $debutp=0;
echo("<a href=\"news-".$_GET[id]."-$debutp.html\">Précédente</a> | ");}
$pagecourante=ceil($debut/$limite)+1;
for($j=1;$j<=$nbpages;$j++){
if($j==$pagecourante) print(" <span>$j</span> | ");
elseif(($j<=3)||($j>=$nbpages-2)||($j==$pagecourante-1)||($j==$pagecourante+1)){
$debutp=($j-1)*$limite;
echo("<a href=\"news-".$_GET[id]."-$debutp.html\">$j</a> | "); }
elseif(($j==4)&&(($pagecourante<4)||($pagecourante>5))) print(" ... | ");
elseif(($j==$nbpages-3)&&(($pagecourante>$nbpages-3)||($pagecourante<$nbpages-4))) print(" ... | "); }
if($pagecourante<$nbpages){
$debutp=$debut+$limite;
if($debutp>$row3[0]-1) $debutp=$row3[0]-1;
echo(" <a href=\"news-".$_GET[id]."-$debutp.html\">Suivante</a>"); }
echo("</p>");
// Fin page par page
while($row = mysql_fetch_array($res)) {
// Début appel de la fonction bb_code
$message = $row[commentaire];
$message = bb_code($message);
// Fin appel de la fonction bb_code
echo("<div class=\"commentaires\"><div class=\"t12g\">");
$query2 = "SELECT pseudo,id,avatar FROM membres WHERE pseudo='$row[membre]'";
$res2 = mysql_query($query2) or die($query2.'<br />'.mysql_error());
$row2 = mysql_fetch_array($res2);
if(empty($row2[avatar]) || ($row2[avatar]=="http://")){ echo("<img src=\"images/sansavatar.gif\" width=\"80\" height=\"80\" alt=\"Sans avatar\" title=\"Sans avatar\" />");
}else{
$avatar = str_replace(" ","%20",$row2['avatar']);
@list($width, $height, $type, $attr) = getimagesize("$avatar");
echo("<img src=\"$avatar\" alt=\"Avatar de $row2[pseudo]\" title=\"Avatar de $row2[pseudo]\" ");
if($width<=80){ echo("width=\"$width\" "); }
else{ echo("width=\"80\" "); }
if($height<=80){ echo("height=\"$height\" />"); }
else{ echo("height=\"80\" />"); } }
echo("</div><div class=\"t88g\">
<h3 class=\"commentaires\">$row[titre] - <span class=\"rouge\">$row[note]</span>/10</h3>
<div class=\"dots\"></div>
<span class=\"titre\">Posté par <a href=\"membres-profil-$row[idmembre].html\">$row[membre]</a> le $row[date] à $row[heure]</span>
<p>$message</p>");
if($resultadmin!=0){ echo("<a href=\"comnews-$_GET[id]-editer-$row[id].html\">Editer</a> / <a href=\"comnews-$_GET[id]-supprimer-$row[id].html\">Supprimer</a>"); }
echo("</div>
<div class=\"spacer\"></div>
</div>"); }
// Début page par page
echo("<p class=\"pages\">");
$nbpages=ceil($row3[0]/$limite);
if($debut>0){
$debutp=$debut-$limite;
if($debutp<0) $debutp=0;
echo("<a href=\"news-".$_GET[id]."-$debutp.html\">Précédente</a> | ");}
$pagecourante=ceil($debut/$limite)+1;
for($j=1;$j<=$nbpages;$j++){
if($j==$pagecourante) print(" <span>$j</span> | ");
elseif(($j<=3)||($j>=$nbpages-2)||($j==$pagecourante-1)||($j==$pagecourante+1)){
$debutp=($j-1)*$limite;
echo("<a href=\"news-".$_GET[id]."-$debutp.html\">$j</a> | "); }
elseif(($j==4)&&(($pagecourante<4)||($pagecourante>5))) print(" ... | ");
elseif(($j==$nbpages-3)&&(($pagecourante>$nbpages-3)||($pagecourante<$nbpages-4))) print(" ... | "); }
if($pagecourante<$nbpages){
$debutp=$debut+$limite;
if($debutp>$row3[0]-1) $debutp=$row3[0]-1;
echo(" <a href=\"news-".$_GET[id]."-$debutp.html\">Suivante</a>"); }
echo("</p>");
// Fin page par page
}
// --
}
}
// Fin de l'affichage des news une par une ---------------------------------------------------------------------------------
Merci de votre aide :?