Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Edycja newsa
Forum PHP.pl > Forum > Przedszkole
svmon
Witam wszystkich.
Staram się zrobić skrypt pozwalający edycje wcześniej istniejących newsów. Niestety chyba nie dam rady poprawić mojego skryptu (nie tak szybko, jakbym chciał).
Oto skrypt:
  1. <?php 
  2. require_once("../connect_db.inc");
  3. if ($_POST['submit'] == 'Wyślij') {
  4. $id_nowosci = $_POST['id_nowosci'];
  5. $temat_nowosci = $_POST['temat_nowosci'];
  6. $as_temat_nowosci = addslashes($temat_nowosci);
  7. $as_data_nowosci = date('Y-m-d');
  8. $streszczenie_nowosci = $_POST['streszczenie_nowosci'];
  9. $as_streszczenie_nowosci = addslashes($_POST['streszczenie_nowosci']);
  10. $tresc_nowosci = $_POST['tresc_nowosci'];
  11. $as_tresc_nowosci = addslashes($_POST['tresc_nowosci']);
  12.  
  13.  
  14. $query = "UPDATE nowosci
  15. SET temat_nowosci = '$as_temat_nowosci',
  16. data_nowosci = '$as_data_nowosci',
  17. streszczenie_nowosci = '$as_streszczenie_nowosci',
  18. tresc_nowosci = '$as_tresc_nowosci' 
  19. WHERE id_nowosci = '$id'";
  20. $result = mysql_query($query);
  21. if (mysql_affected_rows() == 1) {
  22. $success_msg = '<P>Edycja została pomyślnie zakończona</P>';
  23.  
  24. } else {
  25. $success_msg = '<P>Edycja nie powiodła się.</P>';
  26. }
  27. } else {
  28.  
  29. $id_nowosci = $_GET['id'];
  30. $query = "SELECT temat_nowosci, data_nowosci, streszczenie_nowosci, tresc_nowosci
  31. FROM nowosci
  32. WHERE id_nowosci = '$id'";
  33. $result = mysql_query($query);
  34. $nowosci_arr = mysql_fetch_array($result);
  35. $id_nowosci = stripslashes($nowosci_arr[id_nowosci]);
  36. $temat_nowosci = stripslashes($nowosci_arr[temat_nowosci]);
  37. $data_nowosci = stripslashes($nowosci_arr[data_nowosci]);
  38. $streszczenie_nowosci = stripslashes($nowosci_arr[streszczenie_nowosci]);
  39. $tresc_nowosci = stripslashes($nowosci_arr[tresc_nowosci]);
  40. }
  41. $thispage = $_SERVER['PHP_SELF'];
  42. $form_page = <<< TRESC
  43. <FORM METHOD="post" ACTION="$thispage" />
  44. $success_msg
  45. <class="dodawanie">Tytu&#322; aktualizacji:<font class="data-dodawanie">Data:</font><br>
  46. <INPUT TYPE="text" NAME="temat_nowosci" VALUE="$temat_nowosci" SIZE="52">
  47. <input class="form-data" type="text" size="12" name="data_nowosci" value=""/>
  48. </P>
  49. <class="dodawanie">Streszczenie:<br>
  50. <textarea name="streszczenie_nowosci" cols="66" rows="4">$streszczenie_nowosci</textarea></P>
  51. <class="dodawanie">Tre&#347;ć aktualizacji:<br>$tresc_aktualizacji
  52. <textarea name="tresc_nowosci" cols="66" rows="14">$tresc_nowosci</textarea></P>
  53. <INPUT TYPE="hidden" NAME="id_nowosci" VALUE="$id">
  54. <P><INPUT TYPE="submit" NAME="submit" VALUE="Wyślij"></P>
  55. TRESC;
  56. echo $form_page;
  57. ?>

Dane z rekordu są ładowane, za wyjątkiem daty. Dla mnie bardziej istotne to, że każda próba edycji kończy się niepowodzeniem.
Gdzie jest błąd? Jeśli ktoś zna błąd niech napisze poprawny fragment kodu... .
Ps. szukałem podobnych wątków na forum - znalazłem, lecz nadal nie potrafie rozwiązać mojego problemu..
Z góry dzięki.
Pozdrawiam.
strife
Niepowodzeniem, czyli co się dzieje dokładnie?

Zmień to

  1. <?php
  2. if ($_POST['submit'] == 'Wyślij') {
  3. ?>


na

  1. <?php
  2. if (isset($_POST['submit'])) {
  3. ?>
svmon
Niepowodzenie, czyli zmiana nie zostaje zapisana. Nie wyświetla błędów...
strife: nie pomogło...
strife
Zobacz czy zapytanie nie powoduje błędów, pod tym daj mysql_error.

  1. <?php
  2. $result = mysql_query($query);
  3. ?>


I powiedz oczywiście czy teraz jest jakiś błąd.

~edit
Zobacz jak wygląda ten string
  1. <?php
  2. // ...
  3. echo $query; // czy poprzez konsole mysql tez jest blad?
  4. $result = mysql_query($query);
  5. ?>


Czy rzeczywiście robi update'a tak jakbyś chciał.
svmon
Nie wyświetla błędów.
  1. $query = "UPDATE nowosci
  2. SET temat_nowosci = '$as_temat_nowosci',
  3. data_nowosci = '$as_data_nowosci',
  4. streszczenie_nowosci = '$as_streszczenie_nowosci',
  5. tresc_nowosci = '$as_tresc_nowosci'
  6. WHERE id_nowosci = '$id'";

Jeśli zmienie $id na statyczne np. 7 to zmiany zostaną pomyślnie wykonane.
strife
Jaki z tego wniosek? Zmienna $id po submicie w ogóle nie istnieje, to co ma update'ować? Zmień to zapytanie na np.:

  1. <?php
  2. $query = "UPDATE nowosci
  3. SET temat_nowosci = '$as_temat_nowosci',
  4. data_nowosci = '$as_data_nowosci',
  5. streszczenie_nowosci = '$as_streszczenie_nowosci',
  6. tresc_nowosci = '$as_tresc_nowosci' 
  7. WHERE id_nowosci = '$id_nowosci'";
  8. ?>


I zobacz smile.gif

Pozdrawiam.
svmon
Dzięki, myślałem, że wcześniej poprawiłem na coś podobnego i nie działało... a jednak....
Pozdrawiam.
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.