Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पेरेंट_आईडी आईडी टेबल संरचना से पेड़ बनाएं

अंत में एक समाधान मिला जो मेरी आवश्यकताओं के अनुरूप है! सभी की मदद के लिए और रचनात्मक आलोचना के लिए भी धन्यवाद :)

लारावेल 4 - एलोक्वेंट। प्रयोग करने योग्य सरणी में अनंत बच्चे?

समाधान:

<?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. सर्वर को प्रतिक्रिया करने में लंबा समय लगता है

  2. MYSQL FULLTEXT खोज '-' और प्लस '+' के साथ काम नहीं करता है

  3. UNIQUE KEY का उल्लंघन होने पर एक पंक्ति की आईडी प्राप्त करें

  4. जावास्क्रिप्ट पुष्टिकरण बॉक्स के अंदर कोड को कैसे निष्पादित करें

  5. MySql <string> . से शुरू होने वाले सभी डेटाबेस पर अनुमति देता है