Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Problem z edycją tekstu
marcwars
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 14.02.2011
Skąd: Wawa

Ostrzeżenie: (0%)
-----


Piszę ćwiczebnie coś a'la prosty cms w OOP. Jednym ze sposób jest przerabianie formy struturalnej na obiektową, ale nie mogę uzyskać funkcji edytowania artykułów.
Generalnie na razie w tej części cmsa wszystko zachodzi między 2 plikami:
edit.php
  1. .........
  2. //włączanie opcji edycji na liście artykułów
  3. if (isset($_POST['action']) and $_POST['action'] == 'Edytuj')
  4. {
  5. $id = $_POST['id'];
  6. $id_art = $_POST['id'];
  7. include_once("../apps/db/db.php");
  8. $db = new baza ('aaa', 'aaaa', 'aaa', 'aaa');
  9. $db->sqlQuery('SELECT * FROM artykul where id="'.$id_art.'"');
  10. $result = $db->result;
  11. while($row = mysql_fetch_assoc($result))
  12. {
  13. $out[]=$row;
  14. }
  15. $articles = array();
  16. foreach ($out as $art)
  17. {
  18. $articles[$art['tytul']] = new Article ($art['id'], $art['imie'], $art['tytul'], $art['tekst']);
  19. }
  20. include '../apps/view/editform.view.php';
  21. }
  22. //edytowanie artykułu
  23. if (isset($_POST['action']) and $_POST['action'] == 'Zmien')
  24. {
  25.  
  26. $id_art = $_POST['id'];
  27. $tytul = mysql_real_escape_string($_POST['tytul']);
  28. $tekst = mysql_real_escape_string($_POST['tekst']);
  29. include_once("../apps/db/db.php");
  30. $db = new baza ('aaa', 'aaa', 'aaa', 'aaaa');
  31. $db->sqlQuery('UPDATE artykul SET
  32. tekst="'.$tekst.'",
  33. tytul="'.$tytul.'"
  34. WHERE id="'.$id_art.'"');
  35. header('Location: edit.php');
  36. exit();
  37. }
  38. else
  39. {}
  40. .........


i editform.view.php
  1. <form action="?" method="POST">
  2. <?php
  3. foreach ($articles as $tytul => $article)
  4. {
  5. echo '<div>';
  6. echo '<label for="text">Tekst artykułu:</label>';
  7. echo '<textarea id="tekst" name="tekst" rows="3" cols="40">'.$article->tekst.'</textarea></div>';
  8. echo '<div><label for="tytul">Tytuł artykułu:</label><textarea id="tytul" name="tytul" rows="3" cols="40">'.$article->tytul.'</textarea></div>';
  9. echo '<div><input type="hidden" name="id" value="'.$article->id.'"/><input type="submit" value="Zmien"/></div>';
  10. }
  11. ?>
  12. </form>


Po wybraniu opcji edytuj, wszystko chodzi dobrze- wyświetla się w osobnym formularzu tekst i tytuł artykułu do edycji.
Problem jest potem, bo po wysłaniu $_POST['action'] == 'Zmien', plik wraca do starej tabelki, ale nie nanosi zmian.
Na pewno dobre jest połączenie z bazą danych, bo w edit.php (tutaj nie pokazałem dla jasności przekazu), mam opcję kasowania i to działa prawidłowo..

Ten post edytował marcwars 16.01.2012, 08:17:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marcwars
post
Post #2





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 14.02.2011
Skąd: Wawa

Ostrzeżenie: (0%)
-----


Nie wywaliło żadnego błędu, ale dalej nie działa. Natomiast plik editform.view.php nie wyświetla już dotychczasowego artykułu (tylko puste pola formularza), więc chyba lepiej wrócić do poprzedniej wersji.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 21:42