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

PHP और MySQL डेटाबेस से किसी भी उपश्रेणी को कैसे प्रदर्शित करें

बेशक यह संभव है। यह कोड एक <ul> <li> . प्रस्तुत करेगा पदानुक्रमित वृक्ष, स्तरों की संख्या की परवाह किए बिना

<?php
  //Connect to mysql server
  $cn = mysql_pconnect("server", "username", "password");
  mysql_select_db("database_name");
  $rs = mysql_query("SELECT id, parent_id, category FROM categories", $cn);
  $childrenTree = array(); //Will store an array of children for each parent
  $categoryNames = array(); //Will store category name for each id
  //We fill $childrenTree and  $categoryNames from database
  while($row = mysql_fetch_array($rs)){
     list($id, $parent_id, $category) = $row;     
     $categoryNames[(string)$id] = $category;
     $parent_id = (string)$parent_id;
     if(!array_key_exists($parent_id, $childrenTree)) 
         $childrenTree[$parent_id] = array();
     $childrenTree[$parent_id][] = (string)$id;
  }

 //Main recursive function. I'll asume '0' id is the root node
 function renderTree($parent = "0"){
    global $categoryNames;
    global $childrenTree;
    if($parent != "0") echo "<li> ", $categoryNames[$parent], "\n";
    $children = $childrenTree[$parent];
    if(count($children) > 0){ //If node has children
       echo "<ul>\n";
       foreach($children as $child)
          renderTree($child);
       echo "</ul>\n";
    }
    if($parent != "0") echo "</li>\n";
 }
 renderTree();  //This renders the hierarchical tree
?>

आपके उदाहरण के लिए परिणामी HTML होगा:

<ul>  
  <li> a & w
    <ul>
        <li> c & sometimes y </li>
        <li> d </li>
    </ul>
  </li>
  <li> b & f </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. यह जांचने का सबसे अच्छा तरीका है कि mysql_query ने कोई परिणाम दिया है या नहीं?

  2. टाइमज़ोन xampp mysql और apache कैसे सेटअप करें?

  3. MySQL में पिछले 1 घंटे का डेटा कैसे प्राप्त करें

  4. MySQL किस प्रकार का हैश उपयोग करता है?

  5. डेटाबेस के माध्यम से datetimepicker का उपयोग करके दिनांक को कैसे फ़िल्टर करें