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

Phần 46 - Làm phần xóa menu dọc

- Tiếp theo là làm tiếp phần xóa menu dọc ở trong bảng 'menu_doc'.Bạn tạo file 'xoa_menu_doc.php' trong thư mục 'menu_doc' với nội dung sau :


<?php
    if(!isset($bien_bao_mat)){exit();}
?>
<?php
    $id=$_GET['id'];
    $tv="select count(*) from san_pham where thuoc_menu='$id' ";
    $tv_1=mysql_query($tv);
    $tv_2=mysql_fetch_array($tv_1);
    if($tv_2[0]==0)
    {
        $truy_van_xoa="DELETE FROM menu_doc WHERE id = $id ";
        mysql_query($truy_van_xoa);
    }
    else
    {
        thong_bao_html("Menu này vẫn còn dữ liệu nên không thể xóa");
    }
?>

- Bạn xem giải thích code (phần chữ xanh) của file 'xoa_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
    $id=$_GET['id'];
    // lấy biến 'id' trên url (cũng là id menu dọc cần xóa) , liên kết 'Xóa' được truyền biến id trong file 'quan_ly_menu_doc.php'
    $tv="select count(*) from san_pham where thuoc_menu='$id' ";
    // câu truy vấn này là xem menu được bấm xóa có còn dữ liệu hay không , nếu truy vấn select trả về 0 thì menu không có dữ liệu
    // lệnh count để đếm dòng dữ liệu
    // điều kiện để được đếm là thuoc_menu='$id' (sản phẩm nào có cột 'thuoc_menu' chứa id của menu dọc nào thì thuộc về sản phẩm của
    // menu đó)

    $tv_1=mysql_query($tv);
    $tv_2=mysql_fetch_array($tv_1); // lấy kết quả đếm rồi trả về mảng $tv_2
    if($tv_2[0]==0) // nếu kết quả đếm là 0 , tức là không có dữ liệu trong menu cần xóa thì tiến hành xóa
    {
        $truy_van_xoa="DELETE FROM menu_doc WHERE id = $id ";
        // câu truy vấn xóa dữ liệu thì dùng lệnh delete , bảng menu_doc sẽ được xóa dữ liệu
        // WHERE id = $id : dòng dữ liệu được xóa sẽ là dòng mà cột 'id' của dòng đó có giá trị là biến 'id' trên url
   
    // (tức là id của menu dọc cần xóa)
        mysql_query($truy_van_xoa); // gửi câu truy vấn vào mysql bằng lệnh mysql_query
    }
    else
    {
        // trường hợp menu còn chứa dữ liệu
        thong_bao_html("Menu này vẫn còn dữ liệu nên không thể xóa");
        // nếu còn chứa dữ liệu thì xuất ra thông báo "Menu này vẫn còn dữ liệu nên không thể xóa"
    }
?>


- Sau đó mình xóa Menu 9 thì đã thấy đã xóa được dữ liệu

- Khi bạn bấm vào liên kết xóa menu dọc thì web sẽ chạy file 'xu_ly_post_get.php' , lúc này sẽ tồn tại biến $_GET['xoa_menu_doc'] , từ đó file 'xu_ly_post_get.php' sẽ gọi file  'xoa_menu_doc.php' ( để xử lý xóa menu dọc ) bằng đoạn code sau :

if(isset($_GET['xoa_menu_doc']))
{
    include("chuc_nang/menu_doc/xoa_menu_doc.php");
    trang_truoc_html();
}

- File 'xoa_menu_doc.php' sẽ thực hiện xóa menu trong bảng 'menu_doc' bằng lệnh delete

- Mình sẽ làm tiếp phần bấm vào liên kết "Menu dọc" ở phần menu dọc trong trang quản trị , khi bấm vào liên kết này sẽ xuất ra 2 liên kết khác là liên kết  thêm menu dọc và liên kết quản lý menu dọc.Bạn tạo file 'lien_ket_menu_doc.php' trong thư mục 'menu_doc' với nội dung sau :

<?php
    if(!isset($bien_bao_mat)){exit();}
?>
<div style="width:990px;text-align:left" >
    <a href="?thamso=them_menu_doc" class="lk_c2" >Thêm menu dọc</a><br>
    <a href="?thamso=quan_ly_menu_doc" class="lk_c2" >Quản lý menu dọc</a><br>
</div>

- Bạn xem giải thích code (phần chữ xanh) file 'lien_ket_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
?>
<div style="width:990px;text-align:left" > // xuất vùng chứa liên kết với độ rộng 990px và canh trái nội dung của vùng này      // lưu ý các liên kết phía dưới sẽ có class là lk_c2
     // (class này sẽ được định dạng css trong file 'giao_dien.css')

    <a href="?thamso=them_menu_doc" class="lk_c2" >Thêm menu dọc</a><br>
    // xuất liên kết đến trang thêm menu dọc với class là lk_c2
    <a href="?thamso=quan_ly_menu_doc" class="lk_c2" >Quản lý menu dọc</a><br>
    // xuất liên kết đến trang quản lý menu dọc với class là lk_c2
</div>

- Khi mình bấm vào liên kết "Menu dọc" trong trang quản trị thì mình nhận được kết quả sau :