Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL][HTML]Modyfikowanie bazy danych, formularz
Forum PHP.pl > Forum > Przedszkole
Meldron
Witam.
Mój problem dotyczy edycji rekordów w bazie danych przy pomocy formularza. Dopiero raczkuję w tematyce php, mysql dlatego prosiłbym o pomoc.
mam stworzoną stronkę, menu strony wygląda następująco: (ze wzgledu na za dlugu post, wersja okrojona)
  1. <p>Menu:</p>
  2. <ul>
  3. <li><a href="?action=showUSER" class="menu">Użytkownicy</a></li>
  4. </ul>
  5.  

Wspierając sie artykułami z tej strony zrobiłem dodawanie i usuwanie rekordów z bazy. Z modyfikacją są problemy.
  1. if($_GET['action'] == 'showUSER')
  2. {
  3. $wynik = mysql_query("SELECT * FROM uzytkownik")
  4. or die('Błąd zapytania');
  5.  
  6. //tu mam miejsce wyświetlenie rekordów, link i poniżej służą kasowaniu i edycji rekordów, są one wyświetlane w tabelce przy danym rekordzie
  7. //<a href=\"$PHP_SELF?action=showUSER&amp;make=delete&amp;id={$r['userID']}\">Usuń</a>
  8. //<a href=\"$PHP_SELF?action=showUSER&amp;make=modify&amp;a=edit&amp;id={$r['userID']}\">Edytuj</a>
  9.  
  10. $userID = trim($_GET['id']);
  11. $a = trim($_GET['a']);
  12.  
  13. if(isset($_GET['make']))
  14. {
  15. $make = $_GET['make'];
  16.  
  17. //tu jest wstawianie i kasowanie
  18.  
  19. if($make=='modify')
  20. {
  21. echo "Modyfikowanie";
  22. echo "<br />";
  23. if($a == 'edit' and !empty($userID))
  24. {
  25. if(mysql_num_rows($wynik) > 0)
  26. {
  27. $r = mysql_fetch_assoc($wynik);
  28. echo "<form action=\"$PHP_SELF\" method=\"post\">"; //prawdopodobnie tu leży problem
  29. echo "<input type=\"hidden\" name=\"a\" value=\"save\" />";
  30. echo "<input type=\"hidden\" name=\"id\" value=\"'.$userID.'\" />";
  31. echo "<div><label>Login: </label><input type=\"text\" name=\"login\"></div>";
  32. echo "<div><label>Hasło: </label><input type=\"password\" name=\"haslo\"></div>";
  33. echo "<div><label>Typ Użytkowika: </label>
  34. <select name=\"typ_uzytkownika\">
  35. <option value=\"lokator\">Lokator</option>
  36. <option value=\"admin\">Admin</option>
  37. </select></div>";
  38. echo "<div><input type=\"submit\" value=\"Zapisz\" /></div>";
  39. echo "</form>";
  40. }
  41. }
  42. elseif($a == 'save')
  43. {
  44. $userID = $_POST['userID'];
  45. $login = $_POST['login'];
  46. $haslo = md5($_POST['haslo']);
  47. $typ_uzytkownika = $_POST['typ_uzytkownika'];;
  48. $query="UPDATE uzytkownik SET login='$login', haslo='$haslo', typ_uzytkownika='$typ_uzytkownika' WHERE userID='$userID'";
  49. mysql_query($query)
  50. or die('Błąd zapytania');
  51. echo 'Dane zostały zaktualizowane';
  52. }
  53. }
  54. }
  55. }
  56.  
  57.  

po wybraniu linka Edytuj, wyświetla się formularz, ale po kliknięciu na submit, przeładowuje stronę i nic się nie dzieje. Wydaje mi się, że problem może leżeć w formularzu od edycji w <form action= ...>. Jeśli ktoś wyłapał co może być źle, albo ma jakiś myk na sprawienie aby to działało to bardzo prosiłbym o pomoc smile.gif
r4xz
$a = trim($_GET['a']);

formularz wysyłasz metoda post, natomiast na samej górze zmiennej $a przypisujesz jakąś tam wartość przez GET (kto wie, co tam dajesz), i dlatego całość pewnie leci jako true przy

if($a == 'edit' and !empty($userID)) 

Meldron
wartość zmiennej $a pobieram z linku: <a href=\"$PHP_SELF?action=showUSER&amp;make=modify&amp;a=edit&amp;id={$r['userID']}\">Edytuj</a>

modyfikując 8 rekord z bazy link w przeglądarce ma postać:
index.php?action=showUSER&make=modify&a=edit&id=8

tyle, że po kliknięciu na submit nic się nie dzieje
r4xz
  1. $a = (isSet($_POST['a'])) ? $_POST['a'] : trim($_GET['a']);


zrób tak i zobacz czy będzie dobrze działać

Meldron
Dzięki!
Jesteś Wielki smile.gif
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.