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

Membuat array menggunakan php rekursif dari mysql

Saya menemukan kode ini untuk mengelompokkan array induk anak menjadi luar biasa. Saya telah menguji di 4 kedalaman tanpa masalah apa pun. Ini bukan fungsi rekursif.

$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.

Anda mungkin harus melakukan beberapa modifikasi agar dapat sepenuhnya bekerja dengan situasi Anda. Tetapi pada dasarnya ini mengulang semua hasil dan menggabungkannya dengan referensi.

Perhatikan bahwa akhiran $tree tipe data adalah object dan bukan array

Semoga Sukses

PERBARUI

Anda dapat membuat array seperti itu

$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. MySQL DATETIME - Ubah hanya tanggalnya

  2. Konkurensi yang optimis dengan Entity Framework dan MySQL

  3. MySQL Cara INSERT INTO [temp table] DARI [Stored Procedure]

  4. MYSQL menunjukkan baris yang salah saat menggunakan GROUP BY

  5. Apakah ruang yang ditempati oleh baris yang dihapus dapat digunakan kembali?