Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]zmiana zapisu do pliku na zapis do bazy
Forum PHP.pl > Forum > Przedszkole
Kamil90
Witam.
Stworzyłem tabele z trzema polami ID, NAZWA i SEGMENT. ID jest kluczem i przydzielany jest automatycznie, NAZWA to bedzie nazwa kategorii a SEGMENT to będzie Główny SEGMENT do którego będzie należała kategoria. Mam 3 segmenty: Teledyski, Filmiki, Gry Online. Oto tabela "TELE" z bazy mysql:



Wcześniej plik teledyski.php kategorie zapisywał do pliku, tym razem chciałbym żeby zapisywał mi do bazy mysql, miałby zapisywać zmienną "nazwa" do bazy, natomiast "segment" byłby zapisywany jako stała "teledyski", id tworzy się automatycznie. Moj 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', 'w+');
  10.    $filmiki = array_merge($tele, array(stripslashes($_POST['category'])));
  11.    fwrite($h, "<?phpr\n$tele = " . parse_array($tele) . ";r\n?>");
  12.    fclose($h);
  13.  
  14.    echo '<div style="margin-bottom: 20px;">Kategoria dodana.</div>';
  15.  }
  16.  else
  17.  {
  18. ?>
  19.  
  20. <form action="index.php?page=teledyski&amp;x=new" method="post">
  21. <div style="margin-bottom: 20px;">Nazwa kategorii: <input type="text" name="category" size="30" /> <input type="submit" value="Dodaj"></div>
  22. </form>


Co musze zmienić żeby zapisywał mi do bazy?

edit:
doszedłem do wnioski że wystarczy chyba zmienić tylko ten kod:
  1. $h = fopen('../tele.php', 'w+');
  2.    $filmiki = array_merge($filmiki, array(stripslashes($_POST['category'])));
  3.    fwrite($h, "<?phpr&#092;n$filmiki = " . parse_array($filmiki) . ";r\n?>");
  4.    fclose($h);


edit:
ułożyłem taki kod ale niestety teraz wogole nic sie nie wyświetla :/
  1. <?php
  2. switch ($_GET['x'])
  3. {
  4. case 'new':
  5.  if ($_POST['category'])
  6.  {
  7. (mysql_query('insert into `tele` (`nazwa`) values ('' . mysql_value($_POST['category']) . '')'))
  8.    echo '<div style="margin-bottom: 20px;">Kategoria dodana.</div>';
  9.  }
  10.  else
  11.  {
  12. ?>
erix
Nie dziw się, bo nie istnieje taka funkcja, jak mysql_value. winksmiley.jpg
Poza tym, wywali Ci błąd składni SQL, gdyż podajesz tylko jedną kolumnę, a trzy są wymagane. (nie masz auto_increment na id, a segment nie może być pusty)
Kamil90
myślałem nad tym kodem i ułożyłem coś takiego:
  1. <?php
  2.  
  3. $segment = "teledyski";
  4. switch ($_GET['x'])
  5. {
  6. case 'new':
  7.  if ($_POST['category'])
  8.  {
  9.  
  10. mysql_query('insert into `tele` (`nazwa`, `segment`) values ('' . ($_POST['tytul']) . '','' . $segment . ''));
  11.  
  12.  
  13.    echo '<div style="margin-bottom: 20px;">Kategoria dodana.</div>;
  14.  }
  15.  else
  16.  {
  17. ?>
  18.  
  19. <form action="index.php?page=teledyski&amp;x=new" method="post">
  20. <div style="margin-bottom: 20px;">Nazwa kategorii: <input type="text" name="category" size="30" /> <br>
  21. <input type="submit" value="Dodaj"></div>
  22. </form>

niestety coś musi brakować w tej linijce:
  1. <?php
  2. mysql_query('insert into `tele` (`nazwa`, `segment`) values ('' . ($_POST['tytul']) . '','' . $segment . &#092;'));
  3. ?>

bo wogóle mi nie wyświetla pola do wpisania i wogóle sad.gif


edit: już to mam smile.gif więc nie potrzebuje już pomocy w tym temacie
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.