Chcę zrobić skrypt który będzie pobierał mi wszystkie kombinacje zaznaczonych podkategorii
Przykładowo mam 3 kategorie (może być ich więcej lub mniej):
Kategoria 1 Kategoria 2 Kategoria 3
-podkat1.1 -podkat2.1 -podkat3.1
-podkat1.2 -podkat2.2 -podkat3.2
-podkat1.3 -podkat2.3
-podkat1.4
-podkat1.5
Przy każdej z podkategorii mam pole chcekcbox do zaznaczania którą podkategorię chce wyszukać
I teraz chcę pobrać wszystkie kombinację zaznaczonych podkategorii czyli przykładowo gdy mam zaznaczone:
-podkat1.1 -podkat2.1 -podkat3.1
-podkat1.2 -podkat2.2
to skrypt pokazuje kombinacje
przy pierwszym obrocie pętli:
podkat1.1, podkat2.1, podkat3.1
przy drugim obrocie pętli:
podkat1.1, podkat2.2, podkat3.1
przy trzecim obrocie pętli:
podkat1.2, podkat2.1, podkat3.1
przy czwartym obrocie pętli:
podkat1.2, podkat2.2, podkat3.1
Napisałem coś takiego ale działa tylko gdy w Kategori 2 i w Kategorii 3 jest zaznaczona tylko jedna podkategoria
$ag_found = true; for($fdsa=0; $fdsa<count($tab_id); $fdsa++){ $query_st = $q->db("SELECT * FROM `tabela` WHERE `id` = '".$tab_id[$fdsa]."'"); // zapytanie pobiera id kategorii gdzie występuje dana podkategoria foreach ($query_st as $row_st) { if($zm != $row_st['id_f]){ if($ag_found === true){ $first = 'a'.$row_st['id'].'-'.$row_st['id_f].'<br />'; } else $reszta .= $row_st['id'].'-'.$row_st['id_f].'<br />'; } else $qwer .= '<strong>'.$row_st['id'].'-'.$row_st['id_f].'</strong>;<br />'; $zm = $row_st['id_f]; $ag_found = false; } } echo $first; echo $reszta; $tab_qwer = explode(';', $qwer); for($d=0; $d<count($tab_qwer); $d++){ echo $tab_qwer[$d]; echo str_replace($first, $tab_qwer[$d], $reszta); }
Może to wam bardziej zobrazuje o co mi chodzi bo sam nie mogę sobie poradzić:
Jak zrobić aby wyświetlić wszystkie kombinację takich ciągów znaków?
//id numer
141-66
142-66
168-69
189-69
181-73
Oczywiście w jednej kombinacji nie może występować ciąg z taka sama kolumna numer czyli np. nie może być tak:
141-66, 142-66, 168-69 //to jest zle bo jest 141-66 i 142-66
powinno być coś takiego:
1.kombinacja
141-66, 168-69, 181-73
2.kombinacja
141-66, 189-69, 181-73
3.kombinacja
142-66, 168-69, 181-73
4.kombinacja
142-66, 189-69, 181-73
Takich ciągów oczywiście może być więcej np dodatkowo będzie jeszcze: 147-66 lub 199-69 lub 183-73 itd. wtedy ilość kombinacji oczywiście się zwiększa.
Proszę pomóżcie mi z tym.