Thứ Năm, 23 tháng 6, 2016

Phần 44 - Làm phần quản lý menu dọc

- Tiếp theo là làm phần quản lý menu dọc , bạn tạo file 'quan_ly_menu_doc.php' trong thư mục 'menu_doc' với nội dung sau :


<?php
    if(!isset($bien_bao_mat)){exit();}
?>
<?php
    $so_dong_tren_mot_trang=20;
    if(!isset($_GET['trang'])){$_GET['trang']=1;}
  
    $tv="select count(*) from menu_doc";
    $tv_1=mysql_query($tv);
    $tv_2=mysql_fetch_array($tv_1);
    $so_trang=ceil($tv_2[0]/$so_dong_tren_mot_trang);
  
    $vtbd=($_GET['trang']-1)*$so_dong_tren_mot_trang;
    $tv="select * from menu_doc order by id limit $vtbd,$so_dong_tren_mot_trang";
    $tv_1=mysql_query($tv);
?>
<table width="990px" class="tb_a1" >
    <tr style="background:#CCFFFF;height:40px;" >
        <td width="550px" ><b>Tên</b></td>
        <td align="center" width="220px" ><b>Sửa</b></td>
        <td align="center" width="220px" ><b>Xóa</b></td>
    </tr>
    <?php
        while($tv_2=mysql_fetch_array($tv_1))
        {
            $id=$tv_2['id'];
            $ten=$tv_2['ten'];
            $link_sua="?thamso=sua_menu_doc&id=".$id."&trang=".$_GET['trang'];
            $link_xoa="?xoa_menu_doc=co&id=".$id;
            ?>
                <tr class="a_1" >
                    <td>
                        <a href="<?php echo $link_sua; ?>" class="lk_a1" ><?php echo $ten; ?></a>
                    </td>
                    <td align="center" >
                        <a href="<?php echo $link_sua; ?>" class="lk_a1" >Sửa</a>
                    </td>
                    <td align="center" >
                        <a href="<?php echo $link_xoa; ?>" class="lk_a1" >Xóa</a>
                    </td>
                </tr>
            <?php
        }
    ?>
    <tr>
        <td colspan="3" align="center" >
            <br>
            <?php
                for($i=1;$i<=$so_trang;$i++)
                {
                    $link_phan_trang="?thamso=quan_ly_menu_doc&trang=".$i;
                    echo "<a href='$link_phan_trang' class='phan_trang' >";
                        echo $i;
                    echo "</a> ";
                }
            ?>
            <br><br>
        </td>
    </tr>
</table>


- Bạn xem giải thích code (phần chữ xanh)  của file 'quan_ly_menu_doc.php' ở phần bên dưới :


<?php
    if(!isset($bien_bao_mat)){exit();} // xuất ra trang trắng nếu truy cập trực tiếp vào file này
?>
<?php
    $so_dong_tren_mot_trang=20; // số menu xuất ra trong 1 trang , ở đây là 20 menu
    if(!isset($_GET['trang'])){$_GET['trang']=1;}
    // nếu không tồn tại biến 'trang' trên url thì biến này có giá trị là 1 , làm như vậy là để tính biến $vtbd
    // biến $vtbd là vị trí bắt đầu giới hạn menu trong câu truy vấn select , limit phía dưới , giá trị biến $vtbd tùy theo biến 'trang' trên url
    // (nghĩa là giá trị của biến $vtbd tùy vào trang đang hiện hành)

   
    $tv="select count(*) from menu_doc"; // đếm số dòng trong bảng 'menu_doc'
    $tv_1=mysql_query($tv);
    $tv_2=mysql_fetch_array($tv_1);
    $so_trang=ceil($tv_2[0]/$so_dong_tren_mot_trang);
    // tính số trang xuất ra của phần quản lý menu dọc (nếu lớn hơn 20 thì số trang lớn hơn 1 )
    // số trang bằng tổng dữ liệu trong bảng 'menu_doc' chia cho số dòng (số menu) trong 1 trang rồi làm tròn số

   
    $vtbd=($_GET['trang']-1)*$so_dong_tren_mot_trang;
    // tính vị trí bắt đầu giới hạn của bảng 'menu_doc' tùy theo trang hiện hành
    // ở đây , nếu là trang 1 thì $vtbd=0 , nếu là trang 2 thì $vtbd=20 , nếu là trang 3 thì $vtbd=40 ...
    $tv="select * from menu_doc order by id limit $vtbd,$so_dong_tren_mot_trang";
    // lệnh truy cập vào bảng 'menu_doc' sắp xếp theo 'id' tăng dần với giới hạn là tùy theo trang hiện tại
    // ban đầu thì vị trí bắt đầu giới hạn là 0
    $tv_1=mysql_query($tv);
?>
<table width="990px" class="tb_a1" >
// xuất ra bảng chứa danh sách các menu ngang cới class là 'tb_a1' , class này được định dạng trong file 'giao_dien.css'
    <tr style="background:#CCFFFF;height:40px;" > // hàng đầu tiên có chiều cao 40px và có màu nền là 1 mã màu (#CCFFFF)
        <td width="550px" ><b>Tên</b></td>
        <td align="center" width="220px" ><b>Sửa</b></td>
        <td align="center" width="220px" ><b>Xóa</b></td>
    </tr>
    <?php
        while($tv_2=mysql_fetch_array($tv_1))
        {
            $id=$tv_2['id'];
            $ten=$tv_2['ten'];
            $link_sua="?thamso=sua_menu_doc&id=".$id."&trang=".$_GET['trang'];
            // tạo link sửa menu với biến 'thamso' trên url có giá trị là 'sua_menu_doc'
            // link sửa cũng có biến 'id' trên url là cột 'id' của dòng dữ liệu đang được lấy

            // ở đây truyền thêm biến 'trang' trên url để tạo liên kết "Đóng" từ trang sửa menu dọc
            // (phải có biến này để biết vị trí trang trước đó mà trở về sau khi bấm nút "Đóng" )

            $link_xoa="?xoa_menu_doc=co&id=".$id;
            // tạo link xóa menu với biến 'xoa_menu_doc' trên url có giá trị là 'co'
            //  link xóa cũng có biến 'id' trên url là cột 'id' của dòng dữ liệu đang được lấy

            ?>
                <tr class="a_1" >
               // xuất hàng chứa menu xuất ra từ bảng 'menu_doc' , hàng này có class là 'a_1'
                    <td>
                        <a href="<?php echo $link_sua; ?>" class="lk_a1" ><?php echo $ten; ?></a>
                        // xuất tên menu , đồng thời xuất ra liên kết sửa menu với class là 'lk_a1'
                        // (class này được định nghĩa css trong file 'giao_dien.css')

                    </td>
                    <td align="center" >
                        <a href="<?php echo $link_sua; ?>" class="lk_a1" >Sửa</a>
                        // xuất liên kết sửa menu với class là 'lk_a1'
                        // (class này được định nghĩa css trong file 'giao_dien.css')
                    </td>
                    <td align="center" >
                        <a href="<?php echo $link_xoa; ?>" class="lk_a1" >Xóa</a>
                        // xuất liên kết xóa menu với class là 'lk_a1'
                        // (class này được định nghĩa css trong file 'giao_dien.css')
                    </td>
                </tr>
            <?php
        }
    ?>
    <tr>
        <td colspan="3" align="center" >
            <br>
            <?php
                for($i=1;$i<=$so_trang;$i++) // chạy từ trang 1 đến trang cuối cùng
                {
                    $link_phan_trang="?thamso=quan_ly_menu_doc&trang=".$i;
                    // tạo liên kết phân trang , liên kết phân trang đến trang nào thì biến 'trang' trên url có giá trị là trang đó
                    echo "<a href='$link_phan_trang' class='phan_trang' >";
                    // xuất liên kết phân trang với class là 'phan_trang'
                        echo $i;
                    echo "</a> ";
                }
            ?>
            <br><br>
        </td>
    </tr>
</table>


- Mình bấm vào liên kết 'Quản lý menu dọc' tại trang chủ của trang quản trị thì nhận được kết quả sau :



 - Khi mình bấm vào liên kết quản lý menu dọc (ở file 'trang_chu_2.php' ) => web sẽ đến trang ?thamso=quan_ly_menu_doc , web sẽ tải file 'dieu_huong.php' và  gọi file 'quan_ly_menu_doc.php' bằng đoạn code sau :

case "quan_ly_menu_doc":
    include("chuc_nang/menu_doc/quan_ly_menu_doc.php");
break;

- Từ đó sẽ xuất ra trang quản lý menu dọc