Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql + php pobierają liście potomne ze ścieżką

Bardzo proste rozwiązanie do wydrukowania identyfikatora i ścieżki do wszystkich ostatnich węzłów podrzędnych za pomocą PHP, ponieważ nie znam sposobu na zrobienie tego w MySQL. Mam nadzieję, że to pomoż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;
   }
}

Aby uruchomić, po prostu zadzwoń:

getChildren();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. problem z serializacją

  2. MySQL:Ustaw zmienną użytkownika z wyniku zapytania

  3. Przyspieszenie zapytań GROUP BY, SUM i AVG

  4. Jak rozwiązać ostrzeżenie mysql:InnoDB:page_cleaner:zamierzona pętla 1000ms zajęła XXX ms. Ustawienia mogą nie być optymalne?

  5. PHP MySQL INSERT nie powiedzie się z powodu unikalnego ograniczenia