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

नेविगेशन बनाने के लिए रिकर्सन का उपयोग करना

यहां रिकर्सन के साथ एक उदाहरण दिया गया है।

function buildNavigation($items, $parent = NULL)
{
    $hasChildren = false;
    $outputHtml = '<ul>%s</ul>';
    $childrenHtml = '';

    foreach($items as $item)
    {
        if ($item['parent'] == $parent) {
            $hasChildren = true;
            $childrenHtml .= '<li>'.$item['category_name'];         
            $childrenHtml .= buildNavigation($items, $item['category_id']);         
            $childrenHtml .= '</li>';           
        }
    }

    // Without children, we do not need the <ul> tag.
    if (!$hasChildren) {
        $outputHtml = '';
    }

    // Returns the HTML
    return sprintf($outputHtml, $childrenHtml);
}

print buildNavigation($items);

वह स्क्रिप्ट निम्न आउटपुट उत्पन्न करती है:

<ul>
    <li>Menu 1</li>
    <li>Menu 2
        <ul>
            <li>Sub Menu 2.1</li>
            <li>Sub Menu 2.2</li>
            <li>Sub Menu 2.3
                <ul>
                    <li>Sub Menu 2.2.1</li>
                    <li>Sub Menu 2.2.2</li>
                    <li>Sub Menu 2.2.3</li>
                </ul>
            </li>
        </ul>
    </li>
    <li>Menu 3</li>
</ul>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेल एक श्रेणी के साथ क्लॉज हैश सिंटैक्स का उपयोग करके प्रश्नों में `OR 1=0` क्यों जोड़ रहा है?

  2. MySQL त्रुटि 1005?

  3. ऑटो-इंक्रीमेंट फ़ील्ड में छेद कैसे भरें?

  4. MySQL में पदानुक्रमित डेटा से गहराई आधारित पेड़ उत्पन्न करना (कोई सीटीई नहीं)

  5. हाइबरनेट, mysql, ग्लासफ़िश v3, और JTA डेटा स्रोत