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

PHP के माध्यम से mysql के साथ पुनरावर्ती ट्री ट्रैवर्सल

mysql सर्वर को कॉल करना और हर बार परिणाम प्राप्त करना अच्छा नहीं है

क्या होगा यदि आपके पास 100 से अधिक पंक्तियां हैं? या 200+

इसका उपयोग केवल एक बार क्वेरी करने के लिए करें:

$result = mysql_query("SELECT * FROM test");
$arrs = array();

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $arrs[] = $row;
}

function build_tree($arrs, $parent_id=0, $level=0) {
    foreach ($arrs as $arr) {
        if ($arr['parent_id'] == $parent_id) {
            echo str_repeat("-", $level)." ".$arr['name']."<br />";
            build_tree($arrs, $arr['id'], $level+1);
        }
    }
}

build_tree($arrs);

तालिका के लिए सामान्य उदाहरण

  id    name    parent_id


  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 को mysqli में बदलें?

  2. mysql utf8mb4_unicode_ci अद्वितीय कुंजी टकराव का कारण बनता है

  3. मैं SQL फ़ंक्शन में केवल पहले परिणाम को कैसे बदल सकता हूँ?

  4. अजगर 2.6+ पर mysqldb (win32)

  5. एक्सेल फ़ाइल को MySQL वर्कबेंच में कैसे आयात करें?