Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql + php récupère les enfants de la feuille avec le chemin

Solution très simple pour imprimer l'identifiant et le chemin vers tous les derniers nœuds enfants en utilisant PHP car je ne connais pas de moyen de le faire dans MySQL. J'espère que cela vous aidera !

function getChildren($parent= "", $x = 0) {
   $sql = "SELECT id, name FROM recurr WHERE parentId = $x";
   $rs = mysql_query($sql);
   //echo "Name: $parent has ". mysql_num_rows($rs)." children<br/>";
   while ($obj = mysql_fetch_object($rs)) {
      if (hasChildren($obj->id)) {
         getChildren($parent."/".$obj->name, $obj->id);
      } else {
         echo $obj->id .", ".$parent."/".$obj->name."<br/>";
      }
   }
}

function hasChildren($x) {
   $sql = "SELECT * FROM recurr WHERE parentId = $x";
   $rs = mysql_query($sql);
   if (mysql_num_rows($rs) > 0) {
      return true;
   } else {
      return false;
   }
}

Pour exécuter, appelez simplement :

getChildren();