Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]zapisywanie do pliku
Forum PHP.pl > Forum > Przedszkole
Kamil90
Witam.
Mam pole w którym wpisuje się nazwe kategorii, ta nazwa zapisywana jest w postaci tablicy w pliku php. Problem jest w tym ze mam 3 główne kategorie: Teledyski, Filmiki, Gry Online. Kod php wygląda tak:
  1. <?php
  2. include '../tele.php';
  3.  
  4. switch ($_GET['x'])
  5. {
  6. case 'new':
  7.  if ($_POST['category'])
  8.  {
  9.    $h = fopen('../tele.php', 'wb');
  10.    $filmiki = array_merge($filmiki, array(stripslashes($_POST['category'])));
  11.    fwrite($h, "<?phpr\n$filmiki = " . parse_array($filmiki) . ";r\n?>");
  12.    fclose($h);
  13.  
  14.    echo '<div style="margin-bottom: 20px;">Kategoria dodana.</div>';
  15.  }
  16.  else
  17.  {
  18. ?>


Przed dodanim plik tele.php wygląda tak:
  1. <?php
  2. $tele = array("0" => "Imprezy, dyskoteki", "1" => "Dance", "2" => "Club", "3" => "Trance", "4" => "Polskie", "5" => "Zagraniczne", "6" => "disco polo", "7" => "techno", "8" => "hip hop", "9" => "Alternatywne");
  3. $filmiki = array("0" => "Śmieszne", "1" => "Kabarety i Skecze", "2" => "Sportowe", "3" => "Kreskówki i bajki", "4" => "zwiastuny gier");
  4. $gryonline = array("0" => "logiczne", "1" => "wyścigowe", "2" => "przygodowe", "3" => "strzelanki", "4" => "sportowe", "5" => "zręcznościowe");
  5. ?>


Nowa kategoria "inne" dodana w filmikach powinna być przypisana do tablicy $filmiki, natomiast dzieje się zupełnie coś innego sad.gif:
  1. <?php
  2. $filmiki = array("0" => "Śmieszne", "1" => "Kabarety i Skecze", "2" => "Sportowe", "3" => "Kreskówki i bajki", "4" => "zwiastuny gier", "5" => "inne");
  3. ?>


czyli cała reszta zanika sad.gif jak mogę z tym problemem się uporać?
EarthCitizen
Po pierwsze to r/w i b używa się w fopen dla plików binarnych, a Ty takiego nie używasz więc:
  1. <?php
  2. //to $h = fopen('../tele.php', 'wb');
  3. // na
  4. $h = fopen('../tele.php', 'w+'); // zobacz manual funkcja fopen
  5. ?>


Druga sprawa to poniżej zapisujesz tylko tablicę $filmiki, bez $tele i $gryonline nadpisując dotychczasową zawartość pliku więc do drugiego argumentu musisz dodać 2 pozostałe tablice, i tu masz problem, bo musisz zbudować w pętli sobie takiego stringa....
  1. fwrite($h, "<?phpr&#092;n$filmiki = " . parse_array($filmiki) . ";r\n?>");


Cały ten sposób dopisywania jest trochę niabałdzo smile.gif

Masz bazę danych na tym serwerze?
Kamil90
mam bazę danych, póżniej byłby problem bo w tablicach kategorie miałyby taki sam ID, więc już nie wiem czy się zabrać za bazę danych czy może skończyć w taki sposób jaki robimy... bo juz jest końcówka
EarthCitizen
Cytat
póżniej byłby problem bo w tablicach kategorie miałyby taki sam ID

Tak, byłby problem...
Cytat
czy może skończyć w taki sposób jaki robimy... bo juz jest końcówka

Końcówka początku problemów i zmian smile.gif Jak widzisz już teraz minusy takiego rozwiązania, a masz techniczne możliwości zrobienia lepiej - bardziej przyszłościowo - a to nie jest pewnie wielki projekt, w którym nie możesz sobie na to od razu pozwolić to zrób to na bazie...
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.