sql >> Databáze >  >> RDS >> Mysql

mysql + php načte listové děti s cestou

Velmi jednoduché řešení pro tisk id a cesty ke všem posledním podřízeným uzlům pomocí PHP, protože nevím o způsobu, jak to udělat v MySQL. Doufám, že to pomůže!

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

Chcete-li spustit, zavolejte:

getChildren();


  1. Plánované spuštění uložené procedury na SQL serveru

  2. UnsupportedOperationException s DriverManager.getConnection() v systému Android

  3. Jak změnit tento dotaz MySQL SELECT na dotaz DELETE?

  4. Jak odečíst 30 dní od aktuálního data a času v mysql?