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

Tạo một mảng bằng php đệ quy từ mysql

Tôi thấy mã này để nhóm các mảng con mẹ thật tuyệt vời. Tôi đã thử nghiệm ở 4 độ sâu mà không có vấn đề gì. Tuy nhiên, nó không phải là một hàm đệ quy.

$tree = null;
foreach($results as $result)
{
    $thisref = &$refs->{$result['id']};
    foreach($result as $k => $v)
    {
        $thisref->{$k} = $v;
    }
    if ($result['parentId'] == 0) {
        $tree->{$result['id']} = &$thisref;
    } else {
        $refs->{$result['parentId']}->children->{$result['id']} = &$thisref;
    }
}

$tree; // contains the newly sorted tree.

Bạn có thể phải thực hiện một số sửa đổi để nó hoạt động hoàn toàn với tình huống của bạn. Nhưng về cơ bản, nó lặp lại tất cả các kết quả và kết hợp chúng lại bằng cách tham khảo.

Lưu ý rằng phần cuối $tree kiểu dữ liệu là một object và không phải là một array

Chúc may mắn

CẬP NHẬT

Bạn có thể tạo mảng như vậy

$query = "SELECT * FROM pB_test ORDER BY parentId ASC";
$dbresult = mysql_query($query) or die ('Database Error (' . mysql_errno() . ') ' . mysql_error());

$results = array();
while($row=mysql_fetch_assoc($dbresult)) 
{ 
    $results[]=$row 
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng được chỉ định hai lần, vừa là mục tiêu cho 'CẬP NHẬT' và là nguồn riêng cho dữ liệu trong mysql

  2. java.sql.SQLException:Không tìm thấy trình điều khiển phù hợp cho jdbc:mysql:// localhost:3306 / dbname

  3. Ví dụ về UTC_DATE - MySQL

  4. Cách tạo từ đồng nghĩa trong mysql

  5. Cột không xác định trong 'danh sách trường' khi trình giữ chỗ của câu lệnh đã chuẩn bị nằm trong truy vấn con