Problème MySQL Count

Problème MySQL Count - PHP - Programmation

Marsh Posté le 07-04-2010 à 13:24:16    

Bonjour à tous, :)

 

Voila j'aurais un souci concernant
le résultat d'une requête avec COUNT.

 


Pour vous résumer la situation, je cherche
en fait à obtenir le nombre de contacts de mes contacts,
et ce sur plusieurs branches (contacts directs de mes contacts
indirects, leurs contacts directs, etc.)

 

Pour avoir le nombre de contacts directs,
j'ai effectué cette requête:

 


Code :
  1. $retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM table WHERE contact='".$id."'" );
  2. $donnees = mysql_fetch_array($retour);
  3. if ($donnees['nbre_entrees'] > 0)
  4. {
  5. echo $donnees['nbre_entrees'];
  6. }
  7. else
  8. {
  9. echo 'Aucun contact';
  10. }
  

$id correspond ici à mon id.

 

Ce code fonctionne parfaitement et
j'obtiens le nombre de mes contacts directs.

 


Maintenant, concernant le nombre total de
contacts directs de ces contacts, voici le code:

 


Code :
  1. $query = "SELECT COUNT(*) AS nombre_entrees FROM table WHERE contact IN (SELECT id FROM table WHERE contact = $id);";
  2. $result = mysql_query($query) or die(mysql_error());
  3. $donnees2 = mysql_fetch_assoc($result);
  4. if ($donnees2['nombre_entrees'] > 0)
  5. {
  6. echo $donnees2['nombre_entrees'];
  7. }
  8. else
  9. {
  10. echo 'Aucun';
  11. }
 

Ce code fonctionne également correctement.
On utilise ici une sous-requête.

 


Maintenant, je n'arrive plus à continuer
pour compter le nombre de contacts directs
qu'ont ces contacts "indirects".

 

Vous savez, c'est comme dans un système
d'affiliation où on souhaite connaître le nombre
de ses filleuls au niveau 1, puis au 2, 3, 4, etc.

 


Je vous remercie par avance de l'aide que
vous pourriez m'apporter!  :)

 


Tom
 

  


Message édité par Generation-Web le 07-04-2010 à 13:27:29
Reply

Marsh Posté le 07-04-2010 à 13:24:16   

Reply

Marsh Posté le 07-04-2010 à 13:34:33    

Salut,
 
Comme tu ne connais pas la profondeur de ta hiérarchie, il te faut travailler récursivement.
 
Le risque est de tourner en boucle : si A a pour contact B, B pour contact C, et C pour contact A, il y aura un souci... ta structure de données empêche-t-elle ce cas ?

Reply

Marsh Posté le 07-04-2010 à 13:45:22    

Fred999 a écrit :

Salut,
 
Comme tu ne connais pas la profondeur de ta hiérarchie, il te faut travailler récursivement.
 
Le risque est de tourner en boucle : si A a pour contact B, B pour contact C, et C pour contact A, il y aura un souci... ta structure de données empêche-t-elle ce cas ?


 
 
Bonjour Fred,
 
Non il n'y a aucun risque  
de tourner en boucle dans  
mon cas!

Reply

Marsh Posté le 07-04-2010 à 14:09:15    

Ca serait pas pour le calcul de ce truc là, sur ton site? http://opportunite.activite-a-domi [...] tion.html/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 07-04-2010 à 14:15:16    

rufo a écrit :

Ca serait pas pour le calcul de ce truc là, sur ton site? http://opportunite.activite-a-domi [...] tion.html/


 
 
Non c'est pour un autre site, mais le principe reste le même.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed