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

Phần 15 - Xuất bài viết một tin

- Tại file 'menu_ngang.php' trong thư mục 'chuc_nang/menu_ngang' , bạn thêm đoạn code này vào trong vòng lặp 'while' :


if($tv_2['loai_menu']==""){$link_menu="?thamso=xuat_mot_tin&id=".$tv_2['id'];}
if($tv_2['loai_menu']=="san_pham"){$link_menu="?thamso=xuat_san_pham_2";}

- Sau đó bạn sửa echo "<a href=''>"; thành echo "<a href='$link_menu'>"; và sửa select * from menu_ngang order by id thành select id,ten,loai_menu from menu_ngang order by id.Code file 'menu_ngang.php' sau khi sửa sẽ là :

<?php
    $tv="select id,ten,loai_menu from menu_ngang order by id";
    $tv_1=mysql_query($tv);
    echo "<div class='menu_ngang' >";
    while($tv_2=mysql_fetch_array($tv_1))
    {
        if($tv_2['loai_menu']==""){$link_menu="?thamso=xuat_mot_tin&id=".$tv_2['id'];}
        if($tv_2['loai_menu']=="san_pham"){$link_menu="?thamso=xuat_san_pham_2";}
        echo "<a href='$link_menu'>";
            echo $tv_2['ten'];
        echo "</a>";
    }
    echo "</div>";
?>

+ Khi vòng lặp 'while' lấy dữ liệu từ bảng 'menu_ngang' thì sẽ tạo ra 1 biến 'link_menu'.Biến này sẽ có giá trị tùy thuộc vào cột 'loai_menu' ($tv_2['loai_menu'])

+ Nếu giá trị cột 'loai_menu' là '' (rỗng) thì biến 'link_menu' có giá trị dưới dạng '?thamso=xuat_mot_tin&id=id menu' (id menu ở đây chính là id menu ngang trong bảng 'menu_ngang').Web sẽ dùng biến 'thamso trên url' có giá trị là 'xuat_mot_tin' để xuất bài viết (hiển thị một tin)

+ Nếu giá trị cột 'loai_menu' là 'san_pham' thì biến 'link_menu' có giá trị là '?thamso=xuat_san_pham_2'.Web sẽ dùng biến 'thamso trên url' có giá trị là 'xuat_san_pham_2' để xuất danh sách sản phẩm của web ra

+ Sau đó xuất giá trị của biến 'link_menu' vào thẻ 'a' : echo "<a href='$link_menu'>";

+ Lý do sửa select * thành select id,ten,loai_menu là vì cột 'noi_dung' có thể có giá trị tương đối dài nên khi tải ra có thể làm chậm web (nhất là khi web có chứa nhiều dữ liệu trong mysql).Vì vậy ở đây chỉ chọn các cột 'id','ten','loai_menu'

- Như vậy bạn đã gán được liên kết vào các menu ngang.Tiếp theo bạn nhập đoạn code sau trước chữ default: trong file 'dieu_huong.php' :

case "xuat_san_pham_2":
    include("chuc_nang/san_pham/xuat_toan_bo_san_pham.php");
break;
case "xuat_mot_tin":
    include("chuc_nang/xuat_mot_tin.php");
break;

Đoạn code trên nghĩa là :

+ Khi bạn truy cập trang web mà có biến 'thamso trên url' có giá trị là 'xuat_mot_tin' thì web sẽ chạy file 'dieu_huong.php' , rồi từ file 'dieu_huong.php' sẽ gọi file 'xuat_mot_tin.php' (trong thư mục 'chuc_nang') vào file 'index.php'(bạn sẽ truy cập được liên kết này vào cái lúc bạn bấm vào 1 mục nào đó của menu_ngang)

+ Khi bạn truy cập trang web mà có biến 'thamso trên url' có giá trị là 'xuat_san_pham_2' thì web sẽ chạy file 'dieu_huong.php' , rồi từ file 'dieu_huong.php' sẽ gọi file 'xuat_toan_bo_san_pham.php' (trong thư mục 'chuc_nang/san_pham') vào file 'index.php'(bạn có thể sẽ truy cập được liên kết này từ menu ngang)

Do 2 file 'xuat_mot_tin.php' và 'xuat_toan_bo_san_pham.php' chưa có nên bạn tiến hành tạo ra 2 file này.File 'xuat_mot_tin.php' ở trong thư mục 'chuc_nang' , còn file 'xuat_toan_bo_san_pham.php' ở trong thư mục 'chuc_nang/san_pham'

Lưu ý là cái menu 'Sản phẩm' trên menu ngang sẽ xuất toàn bộ sản phẩm của web ra

- File 'dieu_huong.php' sẽ có nội dung như sau :

<?php
    if(isset($_GET['thamso'])){$tham_so=$_GET['thamso'];}else{$tham_so="";}
    switch($tham_so)
    {
        case "xuat_san_pham":
            include("chuc_nang/san_pham/xuat.php");
        break;
        case "chi_tiet_san_pham":
            include("chuc_nang/san_pham/chi_tiet_san_pham.php");
        break;
        case "xuat_san_pham_2":
            include("chuc_nang/san_pham/xuat_toan_bo_san_pham.php");
        break;
        case "xuat_mot_tin":
            include("chuc_nang/xuat_mot_tin.php");
        break;
        default:
            echo "trang chủ";
    }
?>

- Bạn nhập đoạn code sau vào file 'xuat_mot_tin.php' :

<?php
    $id=$_GET['id'];
    $tv="select * from menu_ngang where id='$id'";
    $tv_1=mysql_query($tv);
    $tv_2=mysql_fetch_array($tv_1);
    echo "<h1>";
        echo $tv_2['ten'];
    echo "</h1>";
    echo $tv_2['noi_dung'];
?>

+ Cách viết $_GET['id'] là để lấy giá trị biến 'id trên url'

+ Câu truy vấn select * from menu_ngang where id='$id' là để tìm dòng dữ liệu trong bảng 'menu_ngang' mà có cột 'id' bằng với biến 'id trên url'

+ Sau đó thì xuất (echo) cột tên và nội dung ra (xuất $tv_2['ten'] và $tv_2['noi_dung'])

+ Ở đây sẽ xuất tên menu vào thẻ 'h1' , bạn có thể hiểu thẻ 'h1' dùng để xuất chữ to ra web

- Sau đó bạn truy cập lại trang chủ , rồi bấm vào menu 'Giới thiệu' thì sẽ nhận được kết quả tương tự như sau :



- Như vậy xem như xong trang xuất bài viết (hiển thị một tin)