Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhận dữ liệu truyền tải cây đặt hàng trước đã sửa đổi vào một mảng

Cung cấp cho mã này một shot. $ results là kết quả cơ sở dữ liệu. $ tree là mảng bạn đang lấy lại.

function create_tree ($results) {

    $return = $results[0];
    array_shift($results);

    if ($return['lft'] + 1 == $return['rgt'])
        $return['leaf'] = true;
    else {
        foreach ($results as $key => $result) {
            if ($result['lft'] > $return['rgt']) //not a child
                break;
            if ($rgt > $result['lft']) //not a top-level child
                continue;
            $return['children'][] = create_tree(array_values($results));
            foreach ($results as $child_key => $child) {
                if ($child['rgt'] < $result['rgt'])
                    unset($results[$child_key]);
            }
            $rgt = $result['rgt'];
            unset($results[$key]);
        }
    }

    unset($return['lft'],$return['rgt']);
    return $return;

}
$tree = create_tree($results);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cấu trúc bảng cơ sở dữ liệu SQL giống đa hình

  2. Cách lấy tất cả bản ghi mà không cần xóa trong Nhóm trong mysql

  3. Tìm các hàng có cùng giá trị trên một cột trong MySQL

  4. Chuyển đổi một ngày trong MySQL từ trường chuỗi

  5. MySQL TRÊN CẬP NHẬT KHÓA DUPLICATE cho nhiều hàng chèn trong một truy vấn