<?php
if(!isset($bien_bao_mat)){exit();} ?> <?php if(!isset($_GET['id_menu'])) { $id_menu="toan_bo_san_pham"; } else { if($_GET['id_menu']!="" and $_GET['id_menu']!="toan_bo_san_pham") { $id_menu=$_GET['id_menu']; } else { $id_menu="toan_bo_san_pham"; } } ?> <br> <div style="width:990px;text-align:left" > Chọn : <select name="danh_muc" onchange="window.location='?thamso=quan_ly_san_pham&id_menu='+this.value" > <option value="" >Toàn bộ sản phẩm</option> <?php $tv="select * from menu_doc order by id "; $tv_1=mysql_query($tv); $a=""; while($tv_2=mysql_fetch_array($tv_1)) { $ten=$tv_2['ten']; $id=$tv_2['id']; if($id_menu==$id) { $a="selected"; } echo "<option value='$id' $a >"; echo $ten; echo "</option>"; $a=""; } ?> </select> </div> <br> <?php $so_dong_tren_mot_trang=10; if(!isset($_GET['trang'])){$_GET['trang']=1;} if($id_menu=="toan_bo_san_pham") { $tv="select count(*) from san_pham"; } else { $tv="select count(*) from san_pham where thuoc_menu='$id_menu' "; } $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; if($id_menu=="toan_bo_san_pham") { $tv="select id,ten,gia,hinh_anh from san_pham order by id desc limit $vtbd,$so_dong_tren_mot_trang"; } else { $tv="select id,ten,gia,hinh_anh from san_pham where thuoc_menu='$id_menu' order by id desc 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="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>Sửa</b></td> <td align="center" width="140px" ><b>Xóa</b></td> </tr> <?php 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']; $link_sua="?thamso=sua_san_pham&id_menu=".$id_menu."&id=".$id."&trang=".$_GET['trang']; $link_xoa="?xoa_san_pham=co&id=".$id; ?> <tr class="a_1" > <td align="center" > <a href="<?php echo $link_sua; ?>" > <img src="<?php echo $link_hinh; ?>" style="width:100px;margin-top:10px;margin-bottom:10px;" border="0" > </a> </td> <td> <a href="<?php echo $link_sua; ?>" class="lk_a1" style="margin-left:10px" ><?php echo $ten; ?></a> </td> <td align="center" > <?php echo $gia; ?> </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="5" align="center" > <br> <?php for($i=1;$i<=$so_trang;$i++) { $link_phan_trang="?thamso=quan_ly_san_pham&id_menu=".$id_menu."&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_san_pham.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 // tìm id menu thông qua biến 'id_menu' trên url , id menu sẽ được gán vào biến $id_menu // biến $id_menu dùng để phân loại sản phẩm xuất ra theo danh mục // (nếu có giá trị là 'toan_bo_san_pham' thì xuất toàn bộ sản phẩm) if(!isset($_GET['id_menu'])) // nếu chưa tồn tại biến 'id_menu' trên url { $id_menu="toan_bo_san_pham"; // thì biến $id_menu có giá trị là 'toan_bo_san_pham' (trường hợp này thì xuất toàn bộ sản phẩm) } else { if($_GET['id_menu']!="" and $_GET['id_menu']!="toan_bo_san_pham" ) // nếu biến 'id_menu' trên url khác rỗng và khác 'toan_bo_san_pham' { $id_menu=$_GET['id_menu']; // thì biến $id_menu có giá trị là biến 'id_menu' trên url // trường hợp này sẽ xuất sản phẩm theo danh mục } else { $id_menu="toan_bo_san_pham"; // nếu biến 'id_menu' trên url bằng rỗng // biến $id_menu sẽ được gán giá trị là 'toan_bo_san_pham' (trường hợp này thì xuất toàn bộ sản phẩm) } } ?> <br> <div style="width:990px;text-align:left" > // xuất vùng chứa hộp chọn xuất sản phẩm , hộp chọn này rộng 990px và canh trái Chọn : <select name="danh_muc" onchange="window.location='?thamso=quan_ly_san_pham&id_menu='+this.value" > // xuất hộp chọn xuất sản phẩm và khi thay đổi tùy chọn ( sự kiện onchange ) // thì chuyển trang với biến 'thamso' trên url là 'quan_ly_san_pham' cùng với biến 'id_menu' trên url // là id trong bảng 'menu_doc' <option value="" >Toàn bộ sản phẩm</option> // xuất ra tùy chọn 'Toàn bộ sản phẩm' <?php $tv="select * from menu_doc order by id "; // chọn các menu trong bảng 'menu_doc' để xuất vào thẻ 'select' $tv_1=mysql_query($tv); $a=""; while($tv_2=mysql_fetch_array($tv_1)) // lấy dữ liệu của các dòng dữ liệu trong bảng 'menu_doc' rồi gán vào mảng $tv_2 { $ten=$tv_2['ten']; // cột 'ten' trong bảng 'menu_doc' được gán vào biến $ten $id=$tv_2['id']; // cột 'id' trong bảng 'menu_doc' được gán vào biến $id if($id_menu==$id) // nếu biến id của dòng dữ liệu (lấy trong bảng 'menu_doc') bằng với biến 'id_menu' trên url // thì biến $a có giá trị là 'selected' (nghĩa là sẽ hiển thị tùy chọn menu này trước trong hộp chọn select ) { $a="selected"; // khi xảy ra trùng khớp thì sẽ cho biến $a có giá trị là 'selected' rồi xuất vào thẻ 'option' // thẻ 'option' nào có 'selected' thì sẽ được chọn và hiển thị ra trước } echo "<option value='$id' $a >"; // xuất giá trị của thẻ 'option' (thuộc tính 'value' , giá trị là id menu tương ứng ) // và biến $a (nhằm chọn tùy chọn nào hiển thị trước) echo $ten; echo "</option>"; // hiển thị tên menu ra ngoài màn hình (nằm trong thẻ 'option' ) $a=""; } ?> </select> </div> <br> <?php $so_dong_tren_mot_trang=10; // số sản phẩm xuất ra trong 1 trang , ở đây là 10 sản phẩm 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) if($id_menu=="toan_bo_san_pham") // trường hợp xuất toàn bộ sản phẩm { $tv="select count(*) from san_pham"; // đếm số dòng trong bảng 'san_pham' } else { // trường hợp xuất sản phẩm theo danh mục $tv="select count(*) from san_pham where thuoc_menu='$id_menu' "; // đếm số dòng trong bảng 'san_pham' theo danh mục (để ý chỗ thuoc_menu ) } $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ý sản phẩm (nếu lớn hơn 10 thì số trang lớn hơn 1 ) // số trang bằng tổng dữ liệu của câu truy vấn trên chia cho số dòng (số sản phẩm) 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 'san_pham' tùy theo trang hiện hành // ở đây , nếu là trang 1 thì $vtbd=0 , nếu là trang 2 thì $vtbd=10 , nếu là trang 3 thì $vtbd=20 ... if($id_menu=="toan_bo_san_pham") // trường hợp xuất toàn bộ sản phẩm { $tv="select id,ten,gia,hinh_anh from san_pham order by id desc limit $vtbd,$so_dong_tren_mot_trang"; // lệnh truy cập vào bảng 'san_pham' sắp xếp theo 'id' giảm 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 } else { // trường hợp xuất sản phẩm theo danh mục $tv="select id,ten,gia,hinh_anh from san_pham where thuoc_menu='$id_menu' order by id desc limit $vtbd,$so_dong_tren_mot_trang"; // lệnh truy cập vào bảng 'san_pham' theo danh mục menu ( để ý chỗ thuoc_menu ) // sắp xếp theo 'id' giảm 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 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>Sửa</b></td> <td align="center" width="140px" ><b>Xóa</b></td> </tr> <?php 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) $link_sua="?thamso=sua_san_pham&id_menu=".$id_menu."&id=".$id."&trang=".$_GET['trang']; // tạo link sửa sản phẩm với biến 'thamso' trên url có giá trị là 'sua_san_pham' // 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 sản phẩm // (phải có biến này để biết vị trí trang trước đó mà trở về sau khi bấm nút "Đóng" ) // ngoài ra còn truyền thêm biến 'id_menu' trên url để khi bấm liên kết "Đóng" từ trang sửa sản phẩm // thì biết trang trước đó xuất sản phẩm theo danh mục nào hay xuất toàn bộ sản phẩm $link_xoa="?xoa_san_pham=co&id=".$id; // tạo link xóa sản phẩm với biến 'xoa_san_pham' 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 sản phẩm xuất ra từ bảng 'san_pham' , hàng này có class là 'a_1' <td align="center" > <a href="<?php echo $link_sua; ?>" > // xuất ra liên kết sửa sản phẩm , liên kết này có chứa ảnh sản phẩm <img src="<?php echo $link_hinh; ?>" style="width:100px;margin-top:10px;margin-bottom:10px;" border="0" > // xuất hình ảnh với độ rộng 100px , cách trên cách dưới 10px </a> </td> <td> <a href="<?php echo $link_sua; ?>" class="lk_a1" style="margin-left:10px" ><?php echo $ten; ?></a> // xuất tên sản phẩm , đồng thời xuất ra liên kết sửa sản phẩm với class là 'lk_a1' // (class này được định dạng css trong file 'giao_dien.css') </td> <td align="center" > <?php echo $gia; ?> // xuất giá của sản phẩm </td> <td align="center" > <a href="<?php echo $link_sua; ?>" class="lk_a1" >Sửa</a> // xuất liên kết sửa sản phẩm với class là 'lk_a1' // (class này được định dạng 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 sản phẩm với class là 'lk_a1' // (class này được định dạng css trong file 'giao_dien.css') </td> </tr> <?php } ?> <tr> <td colspan="5" align="center" > <br> <?php for($i=1;$i<=$so_trang;$i++) { $link_phan_trang="?thamso=quan_ly_san_pham&id_menu=".$id_menu."&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 đó // liên kết này chứa biến 'id_menu' trên url , ngoài lúc phải xuất toàn bộ sản phẩm // thì biến này chứa giá trị id của menu được chọn trong hộp chọn select hiện tại 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ý sản phẩm' tại trang chủ của trang quản trị thì nhận được kết quả sau :
- Sau đó mình chọn "Menu 1" và "Menu 3" thì đã thấy sản phẩm xuất theo danh mục menu
- Khi mình bấm vào liên kết quản lý sản phẩm (ở file 'trang_chu_2.php' ) => web sẽ đến trang ?thamso=quan_ly_san_pham , web sẽ tải file 'dieu_huong.php' và gọi file 'quan_ly_san_pham.php' bằng đoạn code sau :
case
"quan_ly_san_pham": include("chuc_nang/san_pham/quan_ly_san_pham.php"); break; |
- Từ đó sẽ xuất ra trang quản lý sản phẩm