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

चयनित माता-पिता का ट्री मेनू प्रदर्शित करें

मुझे आपके समाधान में एक समस्या दिखाई दे रही है। जब आप आईडी की जांच करते हैं if($id == $record->id) आप केवल पेड़ में वर्तमान स्तर से मेल खाएंगे। यानी आईडी =2 के साथ डेल का चयन करना पहले पुनरावृत्ति से मेल नहीं खाएगा, इसलिए आपका कार्य अगले स्तर तक नहीं जाएगा।

आपको अपने चयनित मेनू के पथ का ट्रैक रखना होगा।

आपके मामले में। जब आप डेल का चयन करते हैं तो आप केवल "कंप्यूटर" देखेंगे, क्या मैं सही हूँ?

ऐसा कुछ कैसा रहेगा:

...
  function rederTreeById($records, $path) {
        echo '<ul>';
        foreach($records as $record) {
                if(in_array($record->id, $path)) {
                        echo '<li>'.$record->title;
                        if(!empty($record->childs)) {
                                rederTreeById($record->childs, $path);
                        }
                        echo '</li>';
                } else {
                        echo '<li>'.$record->title.'</li>';
                }
        }
        echo '</ul>';
 }

 function getPath($id) {
    $path = array();
    $current=$id;
    $path[] = 1
    while(!is_null($categories[$current]->parent_id)) {
        $current=$categories[$current]->parent_id
        $path[] = $current;
    }
    return $path;
 }


$selectedId = 1;


 rederTreeById($rootCategories, getPath($selectedId));
...



  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 LIKE क्वेरी में PHP स्ट्रिंग का उपयोग कैसे करें?

  3. SQL कथन - इस क्वेरी के व्युत्क्रम का चयन करें

  4. MySQL कमांड लाइन का उपयोग करके फाइलों से आयात और निर्यात करना

  5. MySQL डेटाबेस टाइमज़ोन को GMT पर सेट करें