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

Phần 58 - Làm phần quản lý sản phẩm nổi bật

- Tiếp theo là làm phần sản phẩm nổi bật , bạn tạo thư mục 'san_pham_noi_bat' trong thư mục 'quan_tri/chuc_nang' rồi tạo file 'san_pham_noi_bat.php' trong thư mục 'san_pham_noi_bat' với nội dung sau :


<?php
    if(!isset($bien_bao_mat)){exit();}
?>

<?php

    $tv="select id,ten,gia,hinh_anh from san_pham where noi_bat='co' order by id desc limit 0,10";

    $tv_1=mysql_query($tv);
?>
<div style="width:990px;text-align:left" >
    <form method="post" >
        <table width="850px" class="tb_a1" >
            <tr style="background:#CCFFFF;height:40px;" >
                <td width="120px" ><b>Hình ảnh</b></td>
                <td width="450px" ><b>Tên</b></td>
                <td align="center" width="140px" ><b>Giá</b></td>
                <td align="center" width="140px" ><b>Nổi bật</b></td>
            </tr>
            <?php
                $i=1;
                while($tv_2=mysql_fetch_array($tv_1))
                {
                    $id=$tv_2['id'];
                    $ten=$tv_2['ten'];
                    $gia=$tv_2['gia'];
                    $gia=number_format($gia,0,",",".");
                    $link_hinh="../hinh_anh/san_pham/".$tv_2['hinh_anh'];
                    $ten_select="select_".$i;
                    $ten_id="id_".$i;
                    ?>
                        <tr class="a_1" >
                            <td align="center" >
                                <img src="<?php echo $link_hinh; ?>" style="width:100px;margin-top:10px;margin-bottom:10px;" border="0" >
                            </td>
                            <td>
                                <?php echo $ten; ?>
                            </td>
                            <td align="center" >
                                <?php echo $gia; ?>
                            </td>
                            <td align="center" >
                                <select name="<?php echo $ten_select; ?>" >
                                    <option value="" >Không</option>
                                    <option value="co" selected >Có</option>
                                </select>
                                <input  type="hidden" value="<?php echo $id; ?>" name="<?php echo $ten_id; ?>" >
                            </td>
       
                        </tr>
                    <?php               
                    $i++;
                }
            ?>
            <tr>
                <td colspan="3" align="center" >
                    &nbsp;
                </td>
                <td align="center" >
                    <br>
                    <input type="submit" name="bieu_mau_san_pham_noi_bat" value="Cập nhật" style="width:120px;height:40px;font-size:20px" >
                    <br><br>
                </td>           
            </tr>

        </table>
    </form>
</div>


- Bạn xem giải thích code (phần chữ xanh)  của file 'san_pham_noi_bat.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

    $tv="select id,ten,gia,hinh_anh from san_pham where noi_bat='co' order by id desc limit 0,10";
     // lệnh truy cập vào bảng 'san_pham' (chỉ áp dụng cho sản phẩm được đánh dấu nổi bật : where noi_bat='co' )
     // sắp xếp theo cột 'id' giảm dần với giới hạn là 10 dòng dữ liệu sản phẩm đầu tiên

    $tv_1=mysql_query($tv);
?>

<div style="width:990px;text-align:left" > // xuất thẻ div chứa danh sách các sản phẩm với chiều rộng 990px và nội dung bên trong được canh trái
<form method="post" > // xuất biểu mẫu để cập nhật sản phẩm nổi bật
    <table width="850px" class="tb_a1" >
    // xuất ra bảng chứa danh sách các sản phẩm với class là 'tb_a1' , class này sẽ được 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="120px" ><b>Hình ảnh</b></td>
            <td width="450px" ><b>Tên</b></td>
            <td align="center" width="140px" ><b>Giá</b></td>
            <td align="center" width="140px" ><b>Nổi bật</b></td>
        </tr>
        <?php
            $i=1;
            // tạo biến $i để chạy cùng vòng lặp while (biến này dùng để tạo tên cho thẻ 'select' , 'input' )($i tăng 1 khi chạy trong vòng lặp while )
            while($tv_2=mysql_fetch_array($tv_1))
             // xuất dòng dữ liệu từ bảng 'san_pham' ra , dữ liệu được gán vào mảng $tv_2
            {
                $id=$tv_2['id']; // gán cột 'id' của dòng dữ liệu đang được lấy dữ liệu vào biến $id
                $ten=$tv_2['ten']; // gán cột 'ten' của dòng dữ liệu đang được lấy dữ liệu vào biến $ten
                $gia=$tv_2['gia']; // gán cột 'gia' của dòng dữ liệu đang được lấy dữ liệu vào biến $gia
                $gia=number_format($gia,0,",","."); // định dạng lại giá tiền cho dễ xem
                $link_hinh="../hinh_anh/san_pham/".$tv_2['hinh_anh'];
                // tạo ra liên kết hình , hình ảnh trong thư mục 'hinh_anh/san_pham' (cách viết ../ là lùi về 1 thư mục)
                $ten_select="select_".$i; // tạo tên ( name ) cho thẻ select (thẻ này nhằm xác định tùy chọn nổi bật của sản phẩm hiện tại)
                $ten_id="id_".$i;// tạo tên ( name ) cho thẻ input chứa id của sản phẩm hiện tại 
                ?>
                    <tr class="a_1" >
                        <td align="center" >
                            <img src="<?php echo $link_hinh; ?>" style="width:100px;margin-top:10px;margin-bottom:10px;" border="0" >
                            // xuất hình ảnh , hình ảnh rộng 100px , cách trên cách dưới 10px
                        </td>
                        <td>
                            <?php echo $ten; ?> // xuất tên sản phẩm
                        </td>
                        <td align="center" >
                            <?php echo $gia; ?> // xuất giá sản phẩm
                        </td>
                        <td align="center" >
                            <select name="<?php echo $ten_select; ?>" >
                            // xuất hộp chọn tùy chọn nổi bật , lấy dữ liệu hộp tùy chọn này bằng cách viết $_POST[$ten_select]
                                <option value="" >Không</option>
                                <option value="co" selected >Có</option> // cho tùy chọn "Có" hiển thị trước ( selected )
                            </select>
                            <input  type="hidden" value="<?php echo $id; ?>" name="<?php echo $ten_id; ?>"  >
                            // xuất thẻ input ẩn ( type="hidden" ) chứa id của sản phẩm xuất ra
                            // lấy dữ liệu chỗ này bằng cách viết $_POST[$ten_id]
                            // id này sẽ được dùng xác định vị trí sửa sản phẩm (được dùng tại chỗ where khi sửa sản phẩm trong cơ sở dữ liệu)

                        </td>
   
                    </tr>
                <?php               
                $i++;
                // tăng biến $i lên 1 , tăng lên như vậy để tạo sự khác nhau khi đặt tên cho thẻ select và input
                // do có 10 thẻ select và 10 thẻ input khác nhau
            }
        ?>
        <tr>
            <td colspan="3" align="center" >
                &nbsp;
            </td>
            <td align="center" >
                <br>
                <input type="submit" name="bieu_mau_san_pham_noi_bat" value="Cập nhật" style="width:120px;height:40px;font-size:20px" >
                // tạo nút gửi biểu mẫu sửa sản phẩm nổi bật với name là 'bieu_mau_san_pham_noi_bat'
                // trong file 'xu_ly_post_get.php' sẽ dùng phần name này
                // để xác định biểu mẫu có được gửi hay không ( isset($_POST['bieu_mau_san_pham_noi_bat']) )
                // định dạng css của nút này (thuộc tính style) là : rộng 120px , cao 40px , kích cỡ chữ 20px
                <br><br>
            </td>           
        </tr>

    </table>
</form>
</div>


- Mình bấm vào liên kết 'Sản phẩm nổi bật' 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 sản phẩm nổi bật (ở file 'trang_chu_2.php' ) thì web sẽ đến trang ?thamso=san_pham_noi_bat , web sẽ tải file 'dieu_huong.php' và  gọi file 'san_pham_noi_bat.php' bằng đoạn code sau :

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

- Từ đó sẽ xuất ra trang sản phẩm nổi phật , nếu muốn chỉnh sửa sản phẩm nổi bật thì vào trang này