10/10/2018, 13:32

list sản phẩm php

ở đây có thêm đệ quy , sẽ xuất các sản phẩm ngay cả trong menu con

ở đây mình muốn tìm 1 cái class hay function nào đó , nói chung là class hay function đó nó thao tác xử lý sql cho mình (nhất là cái khúc đệ quy)

không bít để xứ lý cái vấn đề này (tìm cái class , funtion đó) thì lên google search tu khóa gì nhỉ
1024KB viết 15:32 ngày 10/10/2018
Cái gì mà đệ quy, xuất sản phẩm ngay cả trong menu con. Nói cho rõ ràng tý coi.
moi_hoc_web viết 15:35 ngày 10/10/2018
chang hạn web có menu "menu 1" , "menu 1" chứa thêm menu con "menu 1.1" , "menu 1.1" chứa thêm menu con "menu 1.1.1"

giả sử
"menu 1" chứa 3 sản phẩm
"menu 1.1" chứa 3 sản phẩm
"menu 1.1.1" chứa 3 sản phẩm

như vậy khi list vào "menu 1" sẽ xuất 9 sản phẩm

không bít có mã nguồn php nào đó xử lý sẳn cho mình dụ này khong (mình chỉ cần thay đổi cấu trúc html , table mysql của nó rồi sử dụng)
remcua viết 15:46 ngày 10/10/2018
click vào menu 1 -> xuất 9 sản phẩm

step 1. Truy vấn table menu lấy ra các sub menu
$menu_string = 'menu 1_id, menu 1.1_id, menu 1.1.1_id'

step 2. Truy vấn table san_pham như sau
SELECT * FROM product WHERE menu_id IN($menu_string)
1024KB viết 15:47 ngày 10/10/2018
Như trên:
Bước 1: Truy vấn bảng menu (dùng đệ quy) làm sao cho được chuỗi: $menu_str = 'menu_1_id, menu_2_id, ...';
Bước 2: Truy vấn bảng sản phẩm như trên.
nhinhninhbinh viết 15:33 ngày 10/10/2018
Vấn đề minh quan tâm. Khi truy vấn và mình dùng vòng lặp while thì ra hết các menu con rùi, nhưng nó sẽ hiện thị cả ra những array rỗng. Ví dụ:array(0) { } array(2) { [0]=> NULL [1]=> array(1) { ["catid"]=> string(2) "67" } } array(2) { [0]=> NULL [1]=> array(1) { ["catid"]=> string(2) "66" } } array(2) { [0]=> NULL [1]=> array(1) { ["catid"]=> string(2) "65" } } array(2) { [0]=> NULL [1]=> array(1) { ["catid"]=> string(2) "64" } }
Các bác làm thế nào để nó không nhận giá trị rỗng k?
///////////////LAY CATID TRONG MANG//////////////////////
static function select_catid($catid){
//$catid=59;
$sql = "select catid from ". PREFIX_TABLE ."product_cat where parentid=$catid";
$arr=array();
$result = DB::query($sql);
if($result){
while($row=mysql_fetch_assoc($result)){
$arr[]=DB::select_catid($row['catid']);
$arr[]=$row;
}
}
$arr;
//var_dump($arr);
}
thienvt viết 15:41 ngày 10/10/2018
Nên tạo thêm 1 filed cấu trúc cho menu. Mình lấy ví du menu có cấu trúc dạng: menu - struct_id
Menu A -> 100
Menu A.1 -> 110
Menu A.1.1 -> 111

Menu B -> 200
Menu B.1 -> 210
Menu B.1.1 -> 211

- Khi click menu A thì truy vấn where là: 100 <= struct_id < 200
Vậy là lấy đc hết tất cả menu của A(cả menu con của A)

- khi click menu A.1 thì where là: 110 <= struct_id < 200
Vậy là lấy dc menu A.1 và các menu con của nó
...........
Ý tưởng cho cấu trúc menu là vậy. Còn việc truy vấn list sản phẩm hay tin tức... cũng đều như nhau cả thôi. Khi truy vấn thì join với bảng menu thì sẽ lọc theo menu đc thôi. Demo thanhhoamuaban,com các tin lọc theo menu như bạn nói
thanhnguyennlu viết 15:38 ngày 10/10/2018
cái này tự viết thôi.bạn thực hiện vòng lặp cho tới khi nào hết thỏa đk là đc
Bài liên quan
0