Requête trop longue

Fermé
yoyotheboss7 - 14 déc. 2007 à 04:21
 yoyotheboss7 - 17 déc. 2007 à 18:19
Bonjour,
Voici mon script :
$reponse = mysql_query("SELECT * FROM membres where up=\"$id\""); 
while ($donnees = mysql_fetch_array($reponse) ) { 
$ida=$donnees['id'];
$tot=$tot+2.7;

	$reponseb = mysql_query("SELECT * FROM membres where up=\"$ida\""); 
	while ($donneesb = mysql_fetch_array($reponseb) ) { 
	$idb=$donneesb['id'];
	$tot=$tot+1.8;
	
		$reponsec = mysql_query("SELECT * FROM membres where up=\"$idb\""); 
		while ($donneesc = mysql_fetch_array($reponsec) ) { 
		$idc=$donneesc['id'];
		$tot=$tot+0.9;
		
			$reponsed = mysql_query("SELECT * FROM membres where up=\"$idc\""); 
			while ($donneesd = mysql_fetch_array($reponsed) ) { 
			$idd=$donneesd['id'];
			$tot=$tot+0.9;
			
				$reponsee = mysql_query("SELECT * FROM membres where up=\"$idd\""); 
				while ($donneese = mysql_fetch_array($reponsee) ) { 
				$ide=$donneese['id'];
				$tot=$tot+0.9;
				
				}
			}
		}
	}

}

Comme vous pouvez vous en douter, pour une grande quantité d'information, le script est trop long. En effet, je peux avoir 100000 id
Cependant, je ne vois pas comment optimiser...
Merci pour votre aide !

7 réponses

rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
14 déc. 2007 à 13:05
Bonjour,

Tu veux afficher quoi avec cette requette ?

@+
0
yoyotheboss7
14 déc. 2007 à 17:21
Bonjour,
Je veux juste afficher la variable $tot.
++
0
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
14 déc. 2007 à 18:01
Bonsoir,

Oui je l'avais compris.

Ce que je veux savoir : c'est quoi l'objectif final de cette requette ?

@+
0
yoyotheboss7
15 déc. 2007 à 04:08
En fait, j'ai des comptes avec un ID. Chaque compte est classé sur une hiérarchie ce qui fait qu'ils ont tous un compte dessus eux, sauf celui au dessus de tout le monde.
Chaque enregistrement de ma base a 2 champ, "up" (pour identifier la personne en dessus) et "id".
Je désire trouver toutes les personnes en dessous de chaque compte sur 5 niveaux et leurs donner des points en fonction de leur niveau.
J'espère avoir été clair...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
16 déc. 2007 à 13:02
Bonjour,

Je pense qu'il faudrait que tu revois la conception des traitements de ces données dans ta base.

Cela est un peu complexe ce que tu veux mettre en place, revois tous ça, je pense qu'il y a plus simple.

Désolé trop compliqué pour moi.

@+
0
sebdechezmoi Messages postés 22 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 17 décembre 2007 5
17 déc. 2007 à 16:09
Salut, je ne comprend pas tout.Chaque entree dans ta base de donnee a un ID unique et un seul au dessus de lui (up),donc pour un ID il ne peut y avoir d'un seul IDa, un seul IDb,. . . non?
0
yoyotheboss7
17 déc. 2007 à 18:19
Salut sebdechezmoi
Chaque ID a uniquement un ID dessus lui (variable "up"). Mais chaque ID peut avoir plusieurs ID dessous lui, sur plusieurs niveaux.
ID
IDa, IDb, IDc
IDaa, IDab, IDac, IDba, IDca, ...
0