par
dunbar » 14 oct. 2008, 18:39
Bonjour,
au départ pour mes test et surtout pour aller vite j'ai deux requetes
ici :
$sql_noeud = "SELECT
noeud,
COUNT(distinct id_lm)
AS total
FROM
ampli_lm
GROUP BY noeud
LIMIT ".$limite." , ".$nombre."";
$result = mysql_query($sql_noeud) or die ('Ne trouve pas toutes les données : '.mysql_error());
$total = mysql_num_rows($result);
Elle va chercher les parents (ampli_lm)
puis celle-ci
$sql_dt = "SELECT
COUNT(noeud_dt)
AS total_dt
FROM
ampli_dt
WHERE noeud_dt = '".$noeud."'";
$result_dt = mysql_query($sql_dt) or die ('Ne trouve pas toutes les données de la table distribution: '.mysql_error());
while($row_dt = mysql_fetch_assoc($result_dt)){
$nbrdt = $row_dt['total_dt'];
}
elle recherche les enfants (ampli_dt) des parents.
Mais dans un soucis d'optimisation et bien faire les choses j'essaye de ne plus faire qu'une seule requete
comme ceci
$sql_noeud = "SELECT
lm.noeud, COUNT(distinct lm.id_lm)
AS total,
dt.noeud_dt, COUNT(distinct dt.id_dt)
AS total_dt
FROM
ampli_lm AS lm, ampli_dt AS dt
WHERE dt.noeud_dt = lm.noeud
GROUP BY dt.noeud_dt, lm.noeud
LIMIT ".$limite." , ".$nombre."";
Et là elle fonctionne presuqe bien
elle ne va pas chercher les parents ci il n'y a pas d'enfants
Qui verais mon erreur
D'avance merci