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

Bangun pohon dari struktur tabel id parent_id

Akhirnya menemukan solusi yang sesuai dengan kebutuhan saya! Terima kasih atas semua bantuan semua orang dan juga untuk kritik yang membangun :)

Laravel 4 - Eloquent. Anak-anak tak terbatas menjadi array yang dapat digunakan?

Solusi:

<?php

class ItemsHelper {

    private $items;

    public function __construct($items) {
      $this->items = $items;
    }

    public function htmlList() {
      return $this->htmlFromArray($this->itemArray());
    }

    private function itemArray() {
      $result = array();
      foreach($this->items as $item) {
        if ($item->parent_id == 0) {
          $result[$item->name] = $this->itemWithChildren($item);
        }
      }
      return $result;
    }

    private function childrenOf($item) {
      $result = array();
      foreach($this->items as $i) {
        if ($i->parent_id == $item->id) {
          $result[] = $i;
        }
      }
      return $result;
    }

    private function itemWithChildren($item) {
      $result = array();
      $children = $this->childrenOf($item);
      foreach ($children as $child) {
        $result[$child->name] = $this->itemWithChildren($child);
      }
      return $result;
    }

    private function htmlFromArray($array) {
      $html = '';
      foreach($array as $k=>$v) {
        $html .= "<ul>";
        $html .= "<li>".$k."</li>";
        if(count($v) > 0) {
          $html .= $this->htmlFromArray($v);
        }
        $html .= "</ul>";
      }
      return $html;
    }
}



  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 bagian dari MySQL Blob Field

  2. Konsep MySQL:sesi vs koneksi

  3. Jumlah di sebelah kiri bergabung dengan SQL

  4. Kolom bersyarat untuk kueri berdasarkan kolom lain di MySQL

  5. Bagaimana cara membuat database localhost menggunakan mysql?