Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Traversal pohon rekursif dengan mysql melalui PHP

tidak baik memanggil server mysql dan mengambil hasil setiap kali

bagaimana jika Anda memiliki lebih dari 100 baris? atau 200+

gunakan ini untuk menanyakan hanya sekali:

$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);

contoh umum untuk tabel

  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. PILIH Data dari beberapa tabel?

  2. Merujuk tabel yang sama baik sebagai target UPDATE dan sumber data di MySql

  3. Hapus duplikat pada kueri MySQL JOIN di JSON_ARRAYAGG dengan INNER JOIN

  4. Bagaimana cara membuat kueri SQL yang dikelompokkan dalam kisaran persen tertentu?

  5. Bagaimana saya bisa memasukkan gambar ke dalam database MySQL menggunakan PHP?