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

Rekurencyjne przechodzenie drzewa z mysql przez PHP

nie jest dobrze wywoływać serwer mysql i pobierać wynik za każdym razem

co jeśli masz ponad 100 wierszy? lub 200+

użyj tego do zapytania tylko raz:

$result = mysql_query("SELECT * FROM test");
$arrs = array();

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $arrs[] = $row;
}

function build_tree($arrs, $parent_id=0, $level=0) {
    foreach ($arrs as $arr) {
        if ($arr['parent_id'] == $parent_id) {
            echo str_repeat("-", $level)." ".$arr['name']."<br />";
            build_tree($arrs, $arr['id'], $level+1);
        }
    }
}

build_tree($arrs);

wspólny przykład dla stołu

  id    name    parent_id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak włączyć dziennik powolnych zapytań MySQL?

  2. Dostęp do bazy danych MySQL przez Jupyter Notebook z Python3

  3. MySQL Wstaw wiersz, przy duplikacie:dodaj sufiks i wstaw ponownie

  4. Jak pobrać dane z bazy danych MySQL w JavaScript, aby zbudować wykres?

  5. MySql.Data.MySqlClient.Replication.ReplicationManager zgłasza wyjątek System.TypeInitializationException