Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Edycja danych w tabeli z formularza
Forum PHP.pl > Forum > Bazy danych > MySQL
jg44
Witam,
mam pewien problem z napisaniem skryptu, za pomocą którego można edytować dane w tabeli. Polega on na tym, że po kliknięciu guzika 'zmień dane' nic się nie dzieje w bazie.
Najpierw pobieram dane z tabeli, następnie przenoszę je do poszczególnych pól formularza, niestety po kliknięciu przycisku dane nie zostają zmienione.
Jestem początkujący w PHP.
Kod wygląda następująco:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. </head>
  6. <body>
  7. <?
  8. require("KONFIGURACJA.php");
  9. if(isset($_SESSION['zalogowany']))
  10. {
  11. echo "Witaj, ".$_SESSION['login'].".<br />";
  12. echo "<a href='wyloguj.php'>Wyloguj</a><br /><br />";
  13.  
  14. $uzytkownik = $_SESSION['login'];
  15. $sql = "SELECT * FROM uzytkownicy WHERE login='$uzytkownik'";
  16. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  17.  
  18. if(mysql_num_rows($rezultat) > 0)
  19. {
  20. while ($wynik = mysql_fetch_assoc($rezultat))
  21. {
  22. $imie = $wynik['imie'];
  23. $nazwisko = $wynik['nazwisko'];
  24. $dataurodzenia = $wynik['data_urodzenia'];
  25. $wojewodztwo = $wynik['wojewodztwo'];
  26. $miasto = $wynik['miasto'];
  27. $poziomzaawansowania = $wynik['poziom_zaawansowania'];
  28. $dodatkoweinformacje = $wynik['dodatkowe_informacje'];
  29. }
  30.  
  31. echo "<form action='edytuj.php' method='post'>";
  32. echo "<table>";
  33. echo "Imię:<input type='text' name='imie' value='$imie' />";
  34. echo "Nazwisko:<input type='text' name='nazwisko' value='$nazwisko' />";
  35. echo "Data urodzenia:<input type='text' name='dataurodzenia' value='$dataurodzenia' />";
  36. echo "Województwo:<input type='text' name='wojewodztwo' value='$wojewodztwo' />";
  37. echo "Miasto:<input type='text' name='miasto' value='$miasto' />";
  38. echo "Poziom zaawansowania:<input type='text' name='poziomzaawansowania' value='$poziomzaawansowania' />";
  39. echo "Dodatkowe informacje:<input type='text' name='dodatkoweinformacje' value='$dodatkoweinformacje' />";
  40. echo "</table>";
  41. echo "<input type='submit' value='Zmień swoje dane' name='wyslany' />";
  42. echo "</form>";
  43. }
  44. else { echo "Brak rekordów w tabeli.<br />"; }
  45.  
  46. if(isset($_POST['wyslany']))
  47. {
  48. $sql2 = "UPDATE uzytkownicy SET imie='".$_POST['imie']."' AND nazwisko='".$_POST['nazwisko']."' AND data_urodzenia='".$_POST['dataurodzenia']."' AND wojewodztwo='".$_POST['wojewodztwo']."' AND miasto='".$_POST['miasto']."' AND poziom_zaawansowania='".$_POST['poziomzaawansowania']."' AND dodatkowe_informacje='".$_POST['dodatkoweinformacje']."' WHERE login='$uzytkownik'";
  49. mysql_query($sql2, $polacz) or die(mysql_error());
  50. echo "Zmieniono dane.";
  51. }
  52. }
  53. else { echo "Nie jesteś zalogowany.<br />"; }
  54. ?>
  55. </body>
  56. </html>


Z góry dziękuję za pomoc,
pozdrawiam
YaQzi
w UPDATE nie ma żadnego AND. Tutaj masz składnię.
jg44
Heh, wiedziałem, że jakiś idiotyczny błąd paraliżuje ten skrypt.
Wielkie dzięki YaQzi! smile.gif
nospor
Czegoś nie rozumiem... miałeś ewidentny błąd zapytania czyli ten kod:
mysql_query($sql2, $polacz) or die(mysql_error());
powinien wypluć ci na ekran komunikat błędu.
Czemu więc ci nie wypluł?
Albo czemu ci wypluł a ty nam tego komunikatu nie pokazałeś?
jg44
Nie wypluł mi żadnego błędu, dlaczego to nie wiem. Po kliknięciu przycisku po prostu nic się nie działo (tzn. w bazie danych). Żadnych warningów ani innych nie było.
Oczywiste jest, że gdyby komunikat o błędzie się pojawił, to napisałbym go tutaj, nie po to piszę posta z prośbą o pomoc, żeby inni się domyślali, co mi nie działa. wink.gif

nospor
Czyli jak poprawiłeś, to co poprzednik napisał, to juz wszystko działa? No to jakieś dziwy się tu dzieją wink.gif

edit: a nie , przepraszam. Faktycznie wersja z AND nie pluje błędami smile.gif
jg44
Dokładnie tak, po poprawieniu zgodnie z tym, co przedmówca napisał, wszystko śmiga. smile.gif
nospor
Tak, tak, jak napisałem w poprzednim poście wersja z AND faktycznie nie pluje błędami. A to dlatego, że wówczas te AND traktowane jest jako wyrażenie logiczne i całe to wyrażenie logiczne zapisuje się w twoim pierwszym polu które dałeś po SET smile.gif
Jakbyś uważniej patrzył to byś zobaczył, że w bazie nagle zaczęły w polu imie pojawiać się 0 i 1 smile.gif
jg44
Właśnie zauważyłem, że nie wiedzieć czemu zaczęło mi się 0 pojawiać w pierwszym polu tekstowym zamiast edytowanych danych. To przy okazji mi powiedziałeś, dlaczego. 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-2024 Invision Power Services, Inc.