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

श्रेणी और उपश्रेणी कैसे प्रदर्शित करें?

नीचे दिया गया कोड आपको शुरू करना चाहिए। यह एक "पुनरावर्ती कार्य" है - एक ऐसा कार्य जो स्वयं को कॉल करता है। जैसा कि @ Fake51 ने अभी उल्लेख किया है, यह बहुत कुशल नहीं है, लेकिन इसे काम करना चाहिए।

आपके द्वारा तैयार की गई सूची को संरचित करने के लिए आपको कुछ CSS की आवश्यकता होगी।

function showItems($parent = 0) {
    $q = "SELECT id, name FROM category WHERE parent_id = $parent";
    $q = mysql_query($q);
    if(mysql_num_rows($q)) {
        echo "<ul>";
        while($r = mysql_fetch_row($q)) {
            echo "<li>";
            echo "<a href=\"page.php?id=".$r[0]."\">".htmlentities($r[1])."</a>";
            showItems($r[0]);
            echo "</li>"\n;
        }
        echo "</ul>\n";
    }
}
showItems();

संपादित करें:चूंकि अभी भी कोई स्वीकृत उत्तर नहीं है, यहां मेरा कोड एक एकल SQL क्वेरी के साथ यह सब करने के लिए संशोधित किया गया है जो संभावित रूप से थोड़ा अधिक भ्रमित होने के बावजूद अधिक कुशल होना चाहिए। देखें कि यह आपके लिए कैसा है।

//Recursive function to show menu items from a passed in array
function showItems(&$menu, $parent = 0) {
    if(is_array($menu[$parent]) && sizeof($menu[$parent])) {
        echo "<ul>";
        foreach($menu[$parent] as $num=>$name) {
            echo "<li>";
            echo "<a href=\"page.php?id=".$num."\">".htmlentities($name)."</a>";
            showItems($menu, $num);
            echo "</li>\n";
        }
        echo "</ul>\n";
    }
}

//Create a multi-dimensional array of ALL menu items, separated by parent
$menu = array();
$q = "SELECT id, name, parent_id FROM category ORDER BY order";
$q = mysql_query($q);
while($r = mysql_fetch_row($q)) {
    $menu[$r[2]][$r[0]] = $r[1];
}

//Call the function
showItems($menu);


  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 में रूट उपयोगकर्ता को सभी विशेषाधिकार वापस कैसे प्राप्त करें?

  2. MySql, दिनांक और समय कॉलम को टाइम स्टैम्प में मिलाना

  3. PHP से उत्पन्न HTML से कॉल किए गए फ़ंक्शन का उपयोग करके AJAX अद्यतन MYSQL डेटाबेस

  4. MySQL - MySQL UPDATE या SELECT क्वेरियों में इफ तो एल्स का उपयोग करना

  5. कैसे mysql में परिकलित फ़ील्ड बनाने के लिए?