Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Tworzenie kategorii/działów
Forum PHP.pl > Forum > Przedszkole
fail`
Otóż piszę własny CMS, jednak stanąłem na tworzeniu kategorii/działów. Problem polega na tym, że kompletnie nie wiem jak się za to zabrać. Chciałbym zrobić coś takiego, że mam panel administracyjny, a tam mam pole, np. nazwa. Podaję nazwę kategorii i w menu dodaje mi link o podanej wcześniej nazwie. To w sumie dałbym radę zrobić. Wystarczy tylko wysłać dane do db, a poźniej je pobrać. Jednak... W jaki sposób zrobić, żebym mógł edytować tą kategorię? Wstawić tam np. jakiś tekst czy formularz?
Może rozwiązać to w taki sposób, że podczas podawania nazwy tworzy plik .php o tej nazwie? Istnieje taka funkcja?

Jeżeli mnie zrozumieliście to prosiłbym o jakieś naprowadzenie, podsunięcie poszczególnych funkcji, jeśli jednak nie zrozumieliście mnie to napiszcie, a może postaram się jakoś jaśniej wytłumaczyć biggrin.gif
XP'ek
Powiem CI jak ja to zrobiłem biggrin.gif
Masz np. dodawanie działu

Nazwa wpisujesz sobie cos
url przyjazny
Select -> tutaj wszystkie wpisy z tej tabeli i wybierasz oczywiście warunek rodzic czyli id 0 i będziesz miał w fajny sposób

Główna
Dział 1
- Dział 1 - 1
- Dział 1 - 2
Dział 2

tworzenie linka połaczenie do bazy sprawdza nazwe kategori rodzica dodaje link i potem podaje link tego działu:

a tworzenie: dzial-1_nazwa-dzialu-1-2.html

[edit]
jak coś podbij na PM pokaże Ci jak wygląda to u mnie biggrin.gif
fail`
Cytat
a tworzenie: dzial-1_nazwa-dzialu-1-2.html

Tzn. tworzy plik o nazwie pobranej z bazy, tak? Za pomocą jakiej funkcji mogę to zrobić?
Głównie chodzi mi o ten proces tworzenia kategorii.
I jak np. zrobić, żeby stworzony plik zawierał w sobie już

  1. <?php
  2. include 'header.php';
  3.  
  4. tresc kategorii
  5.  
  6. include 'footer.php';
  7. ?>


a w miejscu "tresc kategorii" byla edytowalna za pomocą formularza treść?
XP'ek
robisz jeden plik o w którym zawierasz to co potrzebujesz a zmienna GET pobiera potrzebne wartości i to przerobi tak jak chcesz


tak ja mam to na jednej tabeli w bazie i jeden plik mi to obrabia w proosty sposób to możesz zrobić np. dodawanie to funkcja ze starego skryptu

  1.  
  2. <?php
  3. if (isset($_POST['dodaj'])) {
  4. $nazwa = trim($_POST['nazwa']);
  5. $title = trim($_POST['tytul']);
  6. $keywords = trim($_POST['keywords']);
  7. $discription = trim($_POST['discription']);
  8. $alias = trim($_POST['alias']);
  9. $opis = trim($_POST['opis']);
  10. $kat = trim($_POST['kat']);
  11. // sprawdza czy taka podstrona jest w bazie
  12. $zapytanie = "SELECT nazwa FROM portfolio_kat WHERE nazwa='$nazwa'";
  13. $pages = mysql_query($zapytanie);
  14.  
  15. if (mysql_num_rows($pages) > 0)
  16. print "<div id='dymkaN'>Podaj inną nazwę. Ponieważ ta już istnieje.</div>";
  17.  
  18. else {
  19. $zapytanie = "INSERT INTO portfolio_kat (id, nazwa, title, keywords, discription, alias, opis, kat) VALUES ('$id', '$nazwa', '$title', '$keywords', '$discription', '$alias', '$opis', '$kat')";
  20. $wstaw = mysql_query($zapytanie);
  21.  
  22.  
  23. if ($wstaw){
  24.  
  25. $zapytanie="SELECT * FROM `portfolio_kat` WHERE `nazwa` LIKE '$nazwa'";
  26. $wykonaj=mysql_query($zapytanie);
  27.  
  28. if($wiersz=mysql_fetch_array($wykonaj))
  29. {
  30. $nazwa = $wiersz['nazwa'];
  31. $id = $wiersz['id'];
  32. }
  33.  
  34. echo "<div id='dymkaP'>Podstrona o nazwie (".$nazwa."). Posiada identyfikator o numerze ".$id.".<br />
  35. Może Ci się on przydać przy dodawaniu podstrony do menu.</div>";
  36. }
  37. else
  38. echo "<div id='dymkaN'>Dodanie nowej strony do bazy nie powiodło się.</div>";
  39. }
  40. }
  41.  
  42. ?><form enctype="multipart/form-data" action="" method="POST">
  43. <p class="oknoDanePotrzebne">Podaj Potrzebne Dane:</p>
  44. <p>Pola oznaczone <b style="color:#F00">*</b> są obowiązkowe</p>
  45. <p>
  46. <table>
  47.  
  48. <tr><td style="text-align:right; width:200px;" valign="top"><b>Nazwa: </b></td><td valign="top"><input type="text" name="nazwa" value="" /> <span class="komentarz"><b style="color:#F00">*</b></span></td></tr>
  49.  
  50. <tr><td style="text-align:right; width:200px;" valign="top"><b>Alias: </b></td><td valign="top"><input type="text" name="alias" value="" /> <span class="komentarz"><b style="color:#F00">*</b> Podaj tylko nazwe np. o-nas a ".html" automatycznie zostanie dodane</span></td></tr>
  51.  
  52. <tr><td style="text-align:right; width:200px;" valign="top"><b>Tytuł Strony: </b></td><td valign="top"><input type="text" name="tytul" value="" /> <span class="komentarz"><b style="color:#F00">*</b></span></td></tr>
  53.  
  54. <tr><td style="text-align:right; width:200px;" valign="top"><b>Opis Strony: </b></td><td valign="top"><input type="text" name="discription" value="" /> <span class="komentarz"><b style="color:#F00">*</b></span></td></tr>
  55.  
  56. <tr><td style="text-align:right; width:200px;" valign="top"><b>Słowa Kluczowe: </b></td><td valign="top"><input type="text" name="keywords" value="" /> <span class="komentarz"></span></td></tr>
  57.  
  58. <tr><td style="text-align:right; width:200px;" valign="top"><b>Kategoria: </b></td><td valign="top">
  59. <select name="kat">
  60. <option value="0">--wybierz kategorię--</option>
  61. <?php
  62.  
  63. $zapytanie="SELECT * FROM `portfolio_kat` ORDER BY `id` ASC";
  64. $wykonaj=mysql_query($zapytanie);
  65.  
  66. while($wiersz=mysql_fetch_array($wykonaj))
  67. {
  68. $nazwa = $wiersz['nazwa'];
  69. $idK = $wiersz['id'];
  70.  
  71. print'<option value="'.$idK.'" '; print'>'.$nazwa.'</option>';
  72. }
  73.  
  74. ?>
  75. </select>
  76. <span class="komentarz"></span></td></tr>
  77.  
  78. </table>
  79.  
  80. <div style="text-align:right; width:200px;margin-top:10px;"><b>Opis: </b></div>
  81.  
  82. <div class="area">
  83. <textarea name="opis"></textarea>
  84. </div>
  85.  
  86. </p>
  87. <div class="pagesPrzyciski" style="margin-left:120px; margin-top:10px;">
  88. <input type="submit" name="dodaj" class="pages" value="Wyślij" />
  89. <input type="reset" class="pages" value="Resetuj" />
  90. <input type="button" class="pages" onclick="java script:history.back();" name="wstecz" value="Wstecz" />
  91. </div>
  92. </form>


i do tego taka baza

  1. CREATE TABLE IF NOT EXISTS `portfolio_kat` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  4. `title` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  5. `keywords` text COLLATE utf8_polish_ci NOT NULL,
  6. `discription` text COLLATE utf8_polish_ci NOT NULL,
  7. `alias` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  8. `opis` text COLLATE utf8_polish_ci NOT NULL,
  9. `kat` int(11) NOT NULL,
  10. PRIMARY KEY (`id`)
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=7 ;
fail`
Ok dzięki za przykład. Może mi nieco rozjaśni.
Jakbym miał jakieś problemy to dam znać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.