Tiểu Luận Menu đa cấp - đệ qui function

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    Menu đa cấp - đệ qui function
    Chắc có lẽ cũng nhiều bạn muốn biết cách để làm một forum nhiều children forum hay cây thư mục đa cấp nên minh viết một bài về đệ qui category sử dụng php & mysql cho các bạn tham khảo.
    Cách viết cũng rất đơn giản thôi: sử dụng một function gọi lại chính nó.
    vi dụ đơn giản chỉ với 100 lần gọi lại như sau:
    function category($x="0",$text="--"){
    for($x=1;$x<=100;$x++) // sau mỗi lần lặp lại nâng biến $x lên một giá trị
    {
    echo $x.$text."<br>";
    category($x,$text."--"); // function category được gọi lại
    }
    }
    Bây giờ ta ứng dụng đệ qui để làm một category như sau:
    Các bạn tạo các file sau:
    Run table sql sau:


    CODE


    CREATE TABLE `multi_category` (
    `category_id` smallint(5) unsigned NOT NULL auto_increment,
    `parent_id` smallint(5) unsigned NOT NULL default '0',
    `name` varchar(100) NOT NULL default ",
    `link` varchar(100) NOT NULL default ",
    `date` date NOT NULL default '0000-00-00',
    PRIMARY KEY (`category_id`)
    ) TYPE=MyISAM AUTO_INCREMENT=66 ;




    Tạo một file config.php


    PHP Code


    <?
    $dbhost="localhost";
    $dbname="multi_category";
    $dbuser="root";
    $dbpass="";
    $table="multi_category";
    $date=date("YmdHis");
    $db=mysql_connect("$dbhost","$dbuser","$dbpass") or die("Die connect: ".mysql_error());
    mysql_select_db("$dbname") or die("Die select database: ".mysql_error());
    ?>




    Tạo một file index.php


    PHP Code


    <?
    include "config.php";
    ?>
    <html>
    <head>
    <title>Multi Category</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <LINK href='style.css' type='text/css' rel=stylesheet>
    <script language="Javascript" src="vietuni.js"></script>
    </head>
    <body>
    <?include "add_category.php";?>
    </body>
    </html>




    tiếp theo tạo file add_category.php


    PHP Code


    <?php
    function show_categories($parent_id="0", $insert_text="--")
    {
    global $db;
    if (! $categories = mysql_query("SELECT * FROM multi_category WHERE parent_id=".$parent_id." ORDER BY parent_id", $db))
    {
    die ("cannot query");
    }
    while ($category=mysql_fetch_array($categories, MYSQL_ASSOC))
    {
    echo("<option value='".$category["category_id"]."'>".$insert_text.$category["name"]."</option>");
    show_categories($category["category_id"],$insert_text."--");
    }
    return true;
    }
    function selectCtrl ($name, $class)
    {
    global $db;
    print "<SELECT name='". $name. "' class='". $class. "'>
    ";
    print "<option value='0'>Main category</option>";
    show_categories();
    print "</SELECT>";
    }
    ?>
    <?
    echo "<form name='add_category' method='post' action='add_category_action.php'>
    [TABLE]
    <tr>
    [TD]<div align='center'>Multi category </div></td>
    </tr>
    <tr>
    <td>Lang type: </td>
    <td>
    <span>
    <input type=radio name='switcher' value='OFF' checked onfocus='setTypingMode(0)'>Off
    <input type=radio name='switcher' value='TELEX' onfocus='setTypingMode(1)'>Telex
    <input type=radio name='switcher' value='vnVni' onfocus='setTypingMode(2)'>VNI
    <input type=radio name='switcher' value='vnVni' onfocus='setTypingMode(3)'>VIQR
    </span>
    </td>
    </tr>
    <tr>
    [TD]Name:</td>
     

    Các file đính kèm:

Đang tải...