Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: modyfikacja rekordów
Forum PHP.pl > Forum > Bazy danych
speedy0
Witam, czy mógłby ktoś znaleźć co jest nie tak z tym skryptem ?

wyświetla wszystko ok ... ale juz nie zapisuje.

  1. <?php
  2. mysql_connect('localhost', 'root', '') or
  3. die('Nie można się połączyć: ' . mysql_error());
  4. mysql_select_db('tibia');
  5.  
  6. $a = trim($_GET['a']);
  7. $id = trim($_GET['id']);
  8.  
  9. if($a == 'edit' and !empty($id)) {
  10. /* zapytanie do tabeli */
  11. $wynik = mysql_query("SELECT * FROM maps WHERE
  12. id='$id'")
  13. or die('Błąd zapytania');
  14.  
  15. if(mysql_num_rows($wynik) > 0) {
  16. /* odczytujemy zawartość wiersza z tabeli */
  17. $r = mysql_fetch_assoc($wynik);
  18.  
  19. echo '<form action="edycja.php" method="post">
  20. <input type="hidden" name="a" value="save" />
  21. <input type="hidden" name="id" value="'.$id.'" />
  22. Nazwa:<br />
  23. <input type="text" name="name"
  24. value="'.$r['name'].'" /><br />
  25. Nazwa (link):<br />
  26. <input type="text" name="namelink"
  27. value="'.$r['namelink'].'" /><br />
  28. Obraz:<br />
  29. <input type="text" name="obraz"
  30. value="'.$r['obraz'].'" /><br />
  31. Opis:<br />
  32. <input type="text" name="opis"
  33. value="'.$r['opis'].'" /><br />
  34. <input type="submit" value="popraw" />
  35. </form>';
  36. }
  37. }
  38.  
  39. elseif($a == 'save') {
  40. /* odbieramy zmienne z formularza */
  41. $id = $_POST['id'];
  42. $name = trim($_POST['name']);
  43. $namelink = trim($_POST['namelink']);
  44. $opis = trim($_POST['opis']);
  45. $obraz = trim($_POST['obraz']);
  46. /* uaktualniamy tabelę test */
  47. mysql_query("UPDATE maps SET name='$name',
  48. namelink='$namelink', obraz='$obraz', opis='$opis' WHERE id='$id'")
  49. or die('Błąd zapytania');
  50. echo 'Dane zostały zaktualizowane';
  51. }
  52. ?>



po kliknięciu popraw pojawia sie biała strona .
pomocy smile.gif
blooregard
Włącz raportowanie błędów na początku skryptu.
speedy0
no zrobiłem tak

  1. <?php
  2. mysql_connect('localhost', 'root', '') or
  3. die('Nie można się połączyć: ' . mysql_error());
  4. mysql_select_db('tibia');
  5.  
  6. $a = trim($_GET['a']);
  7. $id = trim($_GET['id']);
  8.  
  9. if($a == 'edit' and !empty($id)) {
  10. /* zapytanie do tabeli */
  11. $wynik = mysql_query("SELECT * FROM maps WHERE
  12. id='$id'")
  13. or die('Błąd zapytania: '.mysql_error());;
  14.  
  15. if(mysql_num_rows($wynik) > 0) {
  16. /* odczytujemy zawartość wiersza z tabeli */
  17. $r = mysql_fetch_assoc($wynik);
  18.  
  19. echo '<form action="edycja.php" method="post">
  20. <input type="hidden" name="a" value="save" />
  21. <input type="hidden" name="id" value="'.$id.'" />
  22. Nazwa:<br />
  23. <input type="text" name="name"
  24. value="'.$r['name'].'" /><br />
  25. Nazwa (link):<br />
  26. <input type="text" name="namelink"
  27. value="'.$r['namelink'].'" /><br />
  28. Obraz:<br />
  29. <input type="text" name="obraz"
  30. value="'.$r['obraz'].'" /><br />
  31. Opis:<br />
  32. <input type="text" name="opis"
  33. value="'.$r['opis'].'" /><br />
  34. <input type="submit" value="popraw" />
  35. </form>';
  36. }
  37. }
  38.  
  39. elseif($a == 'save') {
  40. /* odbieramy zmienne z formularza */
  41. $id = $_POST['id'];
  42. $name = trim($_POST['name']);
  43. $namelink = trim($_POST['namelink']);
  44. $opis = trim($_POST['opis']);
  45. $obraz = trim($_POST['obraz']);
  46. /* uaktualniamy tabelę test */
  47. mysql_query("UPDATE maps SET name='$name',
  48. namelink='$namelink', obraz='$obraz', opis='$opis' WHERE id='$id'")
  49. or die('Błąd zapytania');
  50. echo 'Dane zostały zaktualizowane';
  51. }
  52. ?>



lecz nadal po kliknięciu popraw pojawia sie tylko biała strona
pmir13
Formularz zawierający przycisk popraw musi mieć poprawnie ustawiony atrybut action jeśli chcesz przesyłać parametr przez $_GET (czyli edycja.php?a=save) albo musisz sprawdzać $_POST skoro formularz jest typu post i masz w nim pole hidden z nazwą akcji.
blooregard
Wstaw jako pierwsze dwie linijki:

  1. ini_set('display_errors' , 1);
  2. error_reporting( E_ALL );


W PHP nigdy nie ma tak, że jest 'biała strona'.
Zawsze oznacza to błąd, tylko trzeba go zobaczyć.
speedy0
problem został rozwiązany : D pomógł leci tongue.gif zamykam
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.