Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP&MYSQL] Aktualizacja rekordu w bazie
Forum PHP.pl > Forum > PHP
tralaliński
  1. <?php
  2. mysql_connect("localhost","root","");
  3. $dane = mysql_query('SELECT * FROM `uczniowie` WHERE `id` = "'.$_POST['uczen'].'"');
  4. while($rekord2 = mysql_fetch_assoc($dane))
  5. {
  6. $imie_ucznia = $rekord2['imie'];
  7. $nazwisko_ucznia = $rekord2['nazwisko'];
  8. $pesel_ucznia = $rekord2['pesel'];
  9. $telefon_ucznia = $rekord2['telefon'];
  10. }
  11. $rezultat = mysql_query('SELECT `klasa` FROM `uczniowie` WHERE `id` = "'.$_POST['uczen'].'"');
  12. ?>
  13. <form action="" method="post" class="formularz">
  14. <div>
  15. <label for="imie">Imię ucznia:</label><input type="text" id="imie" name="imie" value="<?php echo $imie_ucznia; ?>">
  16. </div>
  17. <div>
  18. <label for="imie">Nazwisko ucznia:</label><input type="text" id="imie" name="nazwisko" value="<?php echo $nazwisko_ucznia; ?>">
  19. </div>
  20. <div>
  21. <label for="imie">Klasa:</label>
  22. <select name="klasa">
  23. <?php
  24. while($rekord = mysql_fetch_assoc($rezultat))
  25. {
  26. echo '<option>'.$rekord['klasa'].'</option>';
  27. }
  28. ?>
  29. </select>
  30. </div>
  31. <div>
  32. <label for="imie">Pesel ucznia:</label><input type="text" id="imie" name="pesel" maxlength="11" value="<?php echo $pesel_ucznia; ?>">
  33. </div>
  34. <div>
  35. <label for="imie">Telefon kontaktowy:</label><input type="text" id="imie" name="telefon" maxlength="11" value="<?php echo $telefon_ucznia; ?>">
  36. </div>
  37. <input type="submit" name="submit" value="Zapisz">
  38. </form>
  39. <?php
  40. if (isset($_POST['submit']))
  41. {
  42. $imie = $_POST['imie']; // Filtrowanie nazwy użtkownika
  43. $nazwisko = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($_POST['nazwisko'])))); // Filtrowanie hasła.
  44. $pesel = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($_POST['pesel'])))); // Filtrowanie hasła.
  45. $telefon = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($_POST['telefon'])))); // Filtrowanie hasła.
  46.  
  47. if(!empty($imie) && !empty($nazwisko) && !empty($pesel) && !empty($telefon))
  48. {
  49. if(mysql_query("UPDATE `uczniowie` SET imie="$imie." WHERE `id` = "$_POST['uczen']""))
  50. {
  51. unset($_POST['imie']);
  52. unset($_POST['nazwisko']);
  53. unset($_POST['pesel']);
  54. unset($_POST['telefon']);
  55. unset($_POST['klasa']);
  56. //setcookie('formularz', time(), time() + 60);
  57. echo $_POST['uczen'];
  58. echo '<span id="green">Dodano ucznia!</span>';
  59. }
  60. else{
  61. }
  62. }
  63.  
  64.  
  65. else{
  66. echo '<span id="red">Uzupełnij wszystkie pola!</span>';
  67. }
  68.  
  69. }
  70. echo $_POST['uczen'];
  71. ?>


Powyższy kod działa jedynie jeśli, dane do zapytania UPDATE podam na sztywno, a jeśli chcę, żeby były pobierane ze zmiennej już nie działa. Liczę na szybką pomoc i pozdrawiam.
maniana
  1. if(mysql_query("UPDATE `uczniowie` SET imie="$imie." WHERE `id` = "$_POST['uczen']""))
Brakuje kropek-łączników przy zmiennych ale myślę, że to tylko literówka. Wyświetl sobie te zapytanie tuż przed jego wywołaniem. Wtedy będziesz wiedział jak ono wygląda i czego ew brakuje.

Filtruj wszystkie dane ($_POST['uczen']), nie musisz też usuwać (unset) danych z tablicy POST. Dane te i tak zostaną jeszcze raz wysłane po wciśnięciu F5.
tralaliński
Kropki-łączniki dodane.
Something is wrong in your syntax obok '' w linii 1
Więc chyba źle dodałem..
  1. if(mysql_query("UPDATE `uczniowie` SET imie=".$imie." WHERE `id` = ".$_POST['uczen'].""))
maniana
O ile zmienne są wkładane poprawnie do zapytania zobacz tak:
  1. if(mysql_query("UPDATE `uczniowie` SET `imie`='".$imie."' WHERE `id`='".$_POST['uczen']."'"))
przed ifem daj:
  1. echo "UPDATE `uczniowie` SET `imie`='".$imie."' WHERE `id`='".$_POST['uczen']."'";
Błąd składni powinien się uwidocznić.
tralaliński
  1. UPDATE `uczniowie` SET `imie`='Jan' WHERE `id`=''

Wychodzi na to, że zmienna $_POST['uczen'] jest pusta. Sęk w tym, że wyświetla mi ją pod formem, a po kliknięciu submita jakby jej nie było..

@Edit
Błąd był w składni UPDATE.
Wystarczyło usunąć `` przy nazwach kolumn i działa.
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.