![]() |
![]() |
-Kiore- |
![]()
Post
#1
|
Goście ![]() |
Witam. Próbuję ostatnio zrobić system kategorii, tak aby do każdej można było dodawać artykuły. Skrypty wyglądają tak:
form.html Cytat <h1> Dodaj kategorię</h1> <form action="dodart.php" method="post"> Tytuł<input type="text" name="nazwa"><br> <input type=submit value="Wyślij"> <input type=reset><br> dodart.php Cytat <?php $uchwyt=mysqli_connect('localhost','root','') or die('Nieudane połączenie z bazą danych...'); $nazwa=$_POST['nazwa']; mysqli_select_db($uchwyt, "strona"); mysqli_query($uchwyt, "insert into category values('', '$nazwa')") or die(mysqli_error($uchwyt)); ?> wyborkat.php Cytat <?php $uchwyt=mysqli_connect('localhost','root','') or die('Nieudane połączenie z bazą danych...'); mysqli_select_db($uchwyt, "strona"); $query=mysqli_query($uchwyt, 'SELECT * FROM category ORDER BY id desc'); while($wiersz=mysqli_fetch_array($query)) { $id=$wiersz['id']; $nazwa=$wiersz['nazwa']; $tab[$id] = $nazwa; echo "<a href='kat.php'>$nazwa</a>"; } ?> kat.php (ma wyświetlać artykuły z kategorii) Cytat <?php $uchwyt = mysqli_connect('localhost', 'root' , ''); mysqli_select_db($uchwyt, "strona"); $query = mysqli_query($uchwyt, "select * from category order by id desc limit 0,3"); $rekord = mysqli_fetch_array($query); $nazwa = $rekord['nazwa']; echo "$nazwa" ?> Chciałbym wiedzieć, jak zrobić, aby $nazwa = nazwa wybranej wcześniej kategorii. Poza tym, chciałbym zrobić później system artykułów z podziałem do odpowiednich kategorii. Tutaj też prosiłbym o pomoc (nie w formie kodu, tylko wytłumaczenia) Z góry dziękuję za pomoc i przepraszam za swoje błędy Kiore |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 185 Pomógł: 10 Dołączył: 29.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym wiedzieć, jak zrobić, aby $nazwa = nazwa wybranej wcześniej kategorii. Poza tym, chciałbym zrobić później system artykułów z podziałem do odpowiednich kategorii. Tutaj też prosiłbym o pomoc (nie w formie kodu, tylko wytłumaczenia) Z góry dziękuję za pomoc i przepraszam za swoje błędy Kiore Chodzi o utworzenie struktury drzewa: +Kategoria 1 +podkategoria1.1 +podkategoria1.2 +podkategoria1.3 +Kategoria 2 +podkategoria2.1 +podkategoria2.2 ![]() Jeśli tak to przy dodawaniu kategorii musisz wybrać kategorie nadrzedną, jeśli glowna to zwracasz jako glowna jesli pod to zwracasz jako pod |
|
|
-Kiore- |
![]()
Post
#3
|
Goście ![]() |
Nie. Chcę mieć po lewej stronie swojej witryny menu, w którym wyświetlają się kategorię. Po kliknięciu na kategorię, chciałbym, aby było widać artykuły dodane do tej kategorii.
Wydaje mi się, że do tego muszę użyć selecta i zrobić dodatkowe pole w tabeli artykułów, w którym zapisywane będą id kategorii, do której ma być przypisany dany artykuł, a potem za pomocą ifa (?) sprawdzane, czy się zgadzają. Nie wiem, jak wybierać, że chcę pobrać i ustawić w $nazwa tytuł kategorii, którą wybrałem w wcześniejszym polu. Czekam na dalszą pomoc |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 185 Pomógł: 10 Dołączył: 29.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dodaj do bazy jeszcze jedną kolumne o nazwie np. parent
SELECT: Kod <?php $pytam = "SELECT * FROM category WHERE ORDER BY id"; $wynik = mysql_query($pytam); echo "<select name='parent'>"; echo "<option value="0">** dział główny **</option>"; while($wiersz = mysql_fetch_array($wynik)) { $sid = $wiersz["id"]; $nazwa = $wiersz["nazwa"]; echo "<option value=\"$sid\">$nazwa</option>"; } echo "</select>"; ?> POwinno grać. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Ja polecam zrobić taką tabelę kategorii (zgodnie z sugestią jednego z forumowiczów, niestety nie mam linku):
ID||Nazwa||Rodzic||Sciezka||Glebokosc I jak mamy np filmy z podziałem na sensacyjne i obyczajowe, a obyczajowe dzielą się na nudne i ciekawe: 1||Filmy||-||-||0 2||Sensacyjne||1||1.2||1 3||Obyczajowe||1||1.3||1 4||Nudne||3||1.3.4||2 5||Ciekawe||3||1.3.5||2 Pola ścieżka i głębokość mają charakter pomocniczy - dzięki nim korzystanie z bazy jest dużo prostsze, bo możemy łatwo poruszać się po strukturze "drzewa". Gdy chcemy np. wyświetlić np. strukturę kategorii "obyczajowe" to lecimy LIKE po scieżce tam, gdzie występuje ID tej kategorii - czyli 3. Jedno zapytanie zamiast nie wiadomo ilu... |
|
|
-Kiore- |
![]()
Post
#6
|
Goście ![]() |
Cytat <?php $uchwyt = mysqli_connect('localhost', 'root' , ''); mysqli_select_db($uchwyt, "strona"); $query = mysqli_query($uchwyt, "select * from category order by id desc limit 0,3"); $rekord = mysqli_fetch_array($query); $nazwa = $rekord['nazwa']; echo "$nazwa" ?> Chciałbym jeszcze wiedzieć, jak zrobić, aby $nazwa była równa nazwie wybranej wcześniej kategorii. Próbowałem za pomocą $_REQUEST ale nie zadziałało. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 185 Pomógł: 10 Dołączył: 29.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym jeszcze wiedzieć, jak zrobić, aby $nazwa była równa nazwie wybranej wcześniej kategorii. Próbowałem za pomocą $_REQUEST ale nie zadziałało. Nie wiem czy dobrze rozumiem, ale wydaje mi się że musisz odebraz id kategorii, której nazwe chcesz wyświetlić... Spróbuj tak: W linku przekaż zmienną id www.adres.pl/kat.php?id=1 Kod $uchwyt = mysqli_connect('localhost', 'root' , '');
mysqli_select_db($uchwyt, "strona"); $ids=$_GET['id']; $query = mysqli_query($uchwyt, "select * from category where id=$ids order by id desc limit 0,3"); $rekord = mysqli_fetch_array($query); $nazwa = $rekord['nazwa']; echo "$nazwa" |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 03:28 |