Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Edycja newsa
Forum PHP.pl > Forum > Przedszkole
benzulli
Witam

Otóż mam system newsów i w miarę jak witryna się rozwija i przybywa newsów wychodzą niektóre niedociągnięcia na jaw. Kiedy dodaję newsa - wiadomo, piszę się, tutaj zapomni się dać jakiegoś <br />, czy pogrubienia i innych rzeczy. Za każdym razem muszę wchodzić w phpmyadmina i wszystko ręcznie edytować. Jest to trochę męczące i kłopotliwe, ponieważ traci się dużo czasu, a jeżeli ktoś, kto nie ma dostępu, ktoś "z zewnątrz", komu daję uprawnienia - napisze newsa - i co dalej?

Przejdźmy do sedna: robię sobie taki system edycji. Jestem na tym etapie, że pobieram z bazy danych rekordy, czyli tytuł i treść. No i dalej, mam w formularzu takie coś, że między <textarea> po prostu daję komendę echo w php, żeby mi wyskakiwał aktualny stan. No i co teraz, jak zrobić to, że po naciśnięciu "zaktualizuj" po prostu zupdejtuje mi stan strony do bazy? Jak użyć funkcji update? I jak przede wszystkim wybrać pojedynczego newsa, tego, akurat, na którego podstronie jestem? Adres strony to bezchemii.info
teez
Jaki masz problem? Jeżeli jesteś już na etapie, że pobierasz w <textarea> wartość z bazy to oznacza, że pobierasz news'a za pomocą $_GET, a dokładniej.. Jak sortujesz news'y to dodajesz np. adres:

adres.pl/edit_news.php?id=ID Newsa z bazy

Później pobierasz danego news'a WHERE id = $_GET['id']
Aktualizujesz tak samo.. Po wysłaniu formularza ( w edit_news.php ) aktualizujesz WHERE id = $_GET['id']

http://webmade.org/kursy-online/aktualizac...-kurs-mysql.php
benzulli
Zrobiłem za pomocą jakiegoś poradnika bo mi już mózg wyparował:

edytuj.php

  1. <?php
  2. include("config.php");
  3. ini_set( 'default_charset', 'UTF-8' );
  4. if(isset($_SESSION['zalogowany']))
  5. {
  6. $a = trim($_REQUEST['a']);
  7. $id = trim($_GET['id']);
  8.  
  9. if($a == 'edit' and !empty($id)) {
  10. /* zapytanie do tabeli */
  11. $wynik = mysql_query("SELECT * FROM newsy WHERE
  12. id='$id'")
  13. or die('Błąd zapytania');
  14. /*
  15.   wyświetlamy wyniki, sprawdzamy,
  16.   czy zapytanie zwróciło wartość większą od 0
  17.   */
  18. if(mysql_num_rows($wynik) > 0) {
  19. /* odczytujemy zawartość wiersza z tabeli */
  20. $r = mysql_fetch_assoc($wynik);
  21. /* wczytujemy dane do formularza */
  22. /*
  23.   w formularz znajdują się ukryte pola "a"
  24.   z wartością "save" i pole "id" z wartością
  25.   zmiennej id
  26.   */
  27. echo '<form action="edytuj.php?id='.$r['id'].'" method="post">
  28. <input type="hidden" name="a" value="save" />
  29. <input type="hidden" name="id" value="'.$id.'" />
  30. tytul:<br />
  31. <input type="text" name="tytul"
  32. value="'.$r['tytul'].'" /><br />
  33. tresc:
  34. <input type="text" name="tresc"
  35. value="'.$r['tresc'].'" /><br />
  36. <input type="submit" value="popraw" />
  37. </form>';
  38. }
  39. }
  40. elseif($a == 'save') {
  41. /* odbieramy zmienne z formularza */
  42. $id = $_POST['id'];
  43. $tytul = trim($_POST['tytul']);
  44. $tresc = trim($_POST['tresc']);
  45. /* uaktualniamy tabelę test */
  46. mysql_query("UPDATE test SET tytul='$tytul',
  47. tresc='$tresc' WHERE id='$id'")
  48. or die('Błąd zapytania');
  49. echo 'Dane zostały zaktualizowane';
  50. }
  51. }
  52. ?>


A tu fragment z news.php
  1. echo '<form action="edytuj.php?id='.$rekord[0].'" method="post"><input type="submit" value="Edytuj" /></form>';


Aha i co najważniejsze, nie śmiga niestety :/

Odświeżam.
kpt_lucek
  1. <?php
  2. if(!empty($_POST['submit']))
  3. {
  4. mysql_query("UPDATE `newsy` SET `tresc` = '".jakasFunkcjaValidujaca($_POST['post'])."' WHERE `id` = '".$idNewsa."'") or die(mysql_error());
  5. }
  6. ?>
  7. <form action='' method='post'>
  8. <textarea name="post"><?php echo $tresc;?></textarea>
  9. <input type="submit" name="submit" value="Zapisz"/>
  10. </form>
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.