Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
699 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] Variable dynamique et bouclage de requête

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Variable dynamique et bouclage de requête

n°97076
Sh@rdar
Ex-PhPéteur
Posté le 05-02-2002 à 20:35:13  profilanswer
 

ok, j'ai un ptit souci qui m'a tracassé toute la journée
 
je veux faire une arborescence à partir d'un schéma de donnée simple : 3 champs de BDD nommées Id, Pere et Nom.
 
quand Pere = 0, on a une branche de base, les enfants sont les champs ayant comme Pere l'Id de la ligne parente, ainsi de suite pour pouvoir faire un arbre complet, chaque enfant ayant comme Pere la valeur de l'Id du Pere.  :pt1cable:  
 
faut ensuite que j'imbrique des requêtes du style  
SELECT Id,Nom,Pere where Pere=Id
while (...) {
  affichage du parent
  SELECT Id,Nom,Pere where Pere=Id_du_Parent {
    afifchage du fils 1 (avec incrémentation à chaque fois du numéro de fils)
 etc..
et de boucler le tout histoire de pas devoir mettre 50 requêtes..  
 
1 - j'espère que c'est clair
2 - je mets pas de code je suis parvenu à rien du tout la rigueur je peux mettre le X requêtes imbriquées mais bon..
 
Merci !!!


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
mood
Publicité
Posté le 05-02-2002 à 20:35:13  profilanswer
 

n°97109
ethernal
Chercheur de vérité...
Posté le 05-02-2002 à 22:29:55  profilanswer
 

une fonciton récursive fera très bien l'affaire dans ce cas :
 
function AfficherFils($id){
  static $i=0;
  $query= "SELECT id,pere,nom from table where pere=$id";
  $res= mysql_query($query, $connexion);
  While ( $row= mysql_fetch_object($res) ){
     echo $i++. " Nom : ".$row->nom;
     AfficherFils($row->pere);
  }
}
 
AfficherFils(0);
 
je ne suis pas trop sûr du static, faudrait vérifier

n°97247
Sh@rdar
Ex-PhPéteur
Posté le 06-02-2002 à 11:59:37  profilanswer
 

ça me fait une boucle infinie apparemment...
 
je donne mon exemple codé en dur et que je veux pouvoir boucler :
 
// Récupération des branche Parentes de l'arbre
$Query = mysql_query("SELECT Id,Nom from $Tbl_Categorie where Pere=0",$Connect);
while ($result = mysql_fetch_array($Query)) {
  echo $result["Nom"]."<br>";
 
  // Récup des enfants au niveau 1
  $Query2 = mysql_query("SELECT Id,Nom from $Tbl_Categorie where Pere=".$result["Id"]."",$Connect);
  while ($result2 = mysql_fetch_array($Query2)) {
    echo "  ".$result2["Nom"]."<br>";
 
    // Récup des enfants au niveau 2
    $Query3 = mysql_query("SELECT Id,Nom from $Tbl_Categorie where Pere=".$result2["Id"]."",$Connect);
    while ($result3 = mysql_fetch_array($Query3)) {
      echo "    ".$result3["Nom"]."<br>";
    }
  }
}
 
ici on ne peut récupérer que 2 niveaux de l'arbre, l'idéal serait de pouvoir incrémenter le nom des variables (Query1,result1) dans une boucle pour pouvoir avoir autant de niveau qu'on veut...


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] Variable dynamique et bouclage de requête

 

Sujets relatifs
[PHP] Deux questionsProblème PHP et boucle...
[PHP] Se connecter a la bonne base de donnee[PHP/APACHE] - Urgent - Configuration.
[PHP] Liste des fichiers d'un repertoire quelconque[PHP] moteur de recherche de fichiers pour site web
[PHP] j'aurais besoin de quelques aides pour mon site[PHP]-> Reg. Exp. -> couper une chaine > X caractères ..
[PHP + MySQL] problème lors de la migration sur un autre serveur...[PHP - MSSQL] : format des dates qui ne concordent pas ...
Plus de sujets relatifs à : [PHP] Variable dynamique et bouclage de requête


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR