Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL][HTML]Modyfikowanie bazy danych, formularz
Meldron
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.11.2008

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


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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
r4xz
post
Post #2





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


$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)) 

Go to the top of the page
+Quote Post
Meldron
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.11.2008

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


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
Go to the top of the page
+Quote Post
r4xz
post
Post #4





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


  1. $a = (isSet($_POST['a'])) ? $_POST['a'] : trim($_GET['a']);


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

Go to the top of the page
+Quote Post
Meldron
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.11.2008

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


Dzięki!
Jesteś Wielki (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 23.08.2025 - 17:56