sql >> Databasteknik >  >> RDS >> Mysql

mysql + php hämta löv barn med sökväg

Mycket enkel lösning för att skriva ut id och sökväg till alla sista underordnade noder med PHP eftersom jag inte känner till ett sätt att göra detta inom MySQL. Hoppas detta hjälper!

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;
   }
}

För att springa ring bara:

getChildren();


  1. Hur konfigurerar man anpassad MySQL NHibernate Batcher?

  2. hur man tar bort dubbletter av värden från MySQL-tabellen

  3. Laravel Eloquent med två "WHERE NOT IN" i underfrågan

  4. Returnera den första måndagen i varje månad i SQLite