Page 1 sur 1

Optimisation script mysql

Posté : 05 févr. 2007, 17:43
par telecofr
Salut,
j'ai un script php mysql et je voudrais l'optimiser pour qu'il ne fasse appel qu'une fois à la bdd, c'est à dire que l'appel de la bdd ne se fasse pas dans la boucle while.

Mon script sert à calculer le nombre de pages vues et de visiteurs par mois.
Ma table stats est composée des champs suivants : id, mois, visiteurs, page1, page2, page3.

Voici mon code :
$requete = mysql_query('SELECT id, mois, visiteurs, page1, page2, page3 FROM stats ORDER BY id') or die(mysql_error());

$k = 0;

while ($donnees = mysql_fetch_array($requete))

	{

	$id = $donnees['id'];

	$moisvisites[$k] = $donnees['mois']; 

	$nbvisiteurs[$k] = $donnees['visiteurs'];

	$reponse = mysql_query("SELECT SUM(page1+page2+page3) AS total FROM stats WHERE id='$id'") or die(mysql_error());

	$resultat = mysql_fetch_array($reponse);

	$nbpages[$k] = $resultat['total'];

	$k++;

	}
Si quelqu'un avait une idée pour une seule requête en dehors de la boucle while, svp !
Merci

Posté : 05 févr. 2007, 19:10
par Aureusms
Pourquoi tu ne fait pas :
$requete = mysql_query('SELECT count(page1), count(page2), count(page3), id, mois, visiteurs, page1, page2, page3 FROM stats ORDER BY id') or die(mysql_error());


while ($donnees = mysql_fetch_array($requete))

    {
    $total =  $donnees['count(page1)']+$donnees['count(page2)']+$donnees['count(page3)']
    $id = $donnees['id'];

    
    }

Posté : 06 févr. 2007, 15:53
par telecofr
merci pour la réponse, je vais regarder cela de plus pres !