arlid
28.03.2015, 15:49:49
Witam. Mam pewien problem i nie bardzo wiem jak za to się zabrać.
Mam dwie tabele w bazie: Kategorie, gdzie mam pola ID_Kategorii (Primary oraz Nazwa_kategorii, oraz tabelę Podkategorie z kolumnami ID_podkategoria (Primary), ID_kategoria, nazwa_podkategoria.
Jak zrobić formularz, który pozwoli mi dodać podkategorie do istniejącej już kategorii? Chciałbym, żeby wyglądało to w taki sposób, że mam listę wyboru kategorii i poniżej pole tekstowe, gdzie wpisuję nazwę podkategorii. Po naciśnięciu przycisku wiadoma akcja - dodaje się podkategoria do danej kategorii. Wymyśliłem, że mogłoby to "robić się" w taki sposób.
1. Do listy wyboru kategorii pobierana jest aktualna lista kategorii z tabeli "Kategorie"
2. Wpisujemy kategorię
3. Po naciśnięciu przycisku "Zapisz" do tabeli Podkategorie dodaje się kolejno ID_podkategoria (autoinkremencjaa), ID_kategorii (pobierane jakoś z listy wyboru -> oczywiście dla wybranej kategorii) i nazwa_kategorii wpisana przez użytkownika.
Niby proste, jednak nie wiem jak pobrać kategorie do listy wyboru i ewentualnie powiązać ID, bo raptem wyświetlenie jakby bazy kategorii i podkategorii można zrobić JOINem o ile się nie mylę. Ewentualnie jedna strona to kategorie i odnośniki, gdzie podkategorie wywołam po ID_kategorii.
Dzięki za pomoc.
Kshyhoo
28.03.2015, 16:05:08
Ja używam takiego kodu:
echo '<form method="post" name="form1" action="a.php"> '; $kat_list = "";
$sel = "";
$result = dbquery("SELECT kat_id, kat_kategoria FROM kategorie WHERE kat_cat='0' ORDER BY kat_order");
if (dbrows($result) != 0) {
while ($data = dbarray($result)) {
$result2 = dbquery("SELECT kat_id, kat_order, kat_kategoria FROM kategorie WHERE kat_cat='".$data['kat_id']."' ORDER BY kat_order");
if (dbrows($result2) != 0) {
$kat_list .= "<optgroup label='[".$data['kat_id']."] ".$data['kat_kategoria']."'>\n";
while ($data2 = dbarray($result2)) {
if ($_GET['kat_id'] == $data2['kat_id']) { $sel = " selected"; } else { $sel = ""; }
$kat_list .= "<option value='".$data2['kat_id']."'$sel>[".$data2['kat_id']."] [".$data2['kat_order']."] ".$data2['kat_kategoria']."</option>\n";
}
$kat_list .= "</optgroup>\n";
}
}
}
echo 'Kategorie: <select name="kat_id[]" style="width: 200px" size="10" multiple>\n'.$kat_list.'</select> <input type="hidden" name="zet" value="1" />
<input type="submit" value="Dodaj"></form>';
Wyciąga mi to kategorie i podkategorie. Dopasuj do swoich potrzeb.
Przykładowa baza wygląda tak:
kat_id kat_kategoria kat_cat kat_order
1 Programowanie 0 1
2 HTML 1 1
3 HTML5 1 2
4 CSS 1 3
5 CSS3 1 4
6 PHP 1 5
8 PostgreSQL 1 9
9 JavaScript 1 10
0 to kategoria...