Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]UPDATE, ale nie wszystkich pól, update pól zawierajacych wartość
David92
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.09.2009

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


Witam serdecznie mam kod w php w którym użytkownik może zmieniać swoje dane, i teraz chciałbym aby były zmieniane tylko dane których pola zawierają jakąś wartość tzn. że jeżeli wypełnię tylko pole Imię to chciałbym żeby tylko imie się zmeniło , a niestety w dotychczasowym kodzie reszta zmienia się także i w tym przypadku podstawiane są puste pola. Proszę o pomoc jakbym mógł to rozwiązać, odrazu powiem że cały kod robię dla nauki.

  1. <?php
  2. include_once 'db.inc.php';
  3. include_once 'function.inc.php';
  4. if(isset($_POST['zmiana'])){
  5. if($_POST['imie'] != ''){
  6. if(!codenone($_POST['imie'])){
  7. redirect("updateinfo.php?error_code");
  8. exit ('');
  9. }
  10. }elseif($_POST['nazwisko'] != ''){
  11. if(!codenone($_POST['nazwisko'])){
  12. redirect("updateinfo.php?error_code");
  13. exit ('');
  14. }
  15. }elseif($_POST['miejscowosc'] != ''){
  16. if(!codenone($_POST['miejscowosc'])){
  17. redirect("updateinfo.php?error_code");
  18. exit ('');
  19. }
  20. }elseif($_POST['wiek'] != ''){
  21. if(checkAge($_POST['wiek'])){
  22. redirect("up
  23. dateinfo.php?error_age");
  24. exit ('');
  25. }
  26. }elseif($_POST['kontakt'] != ''){
  27. if(!checkPhone($_POST['kontakt'])){
  28. redirect("updateinfo.php?error_phone");
  29. exit ('');
  30. }
  31. }
  32. $sql = "UPDATE user SET
  33. imie = '$_POST[imie]',
  34. nazwisko = '$_POST[nazwisko]',
  35. miejscowosc = '$_POST[miejscowosc]',
  36. wiek = '$_POST[wiek]',
  37. kontakt = '$_POST[kontakt]'
  38. WHERE login='$_SESSION[zalogowany]'";
  39. if(mysql_query($sql)){
  40. redirect("konto.php?moje_konto&updateinfo");
  41. }else{
  42. redirect("updateinfo.php?error");
  43. }
  44. }
  45. include 'header.php';
  46. include 'left.php';
  47. opentable("Zmień dane");
  48. if(isset($_SESSION['zalogowany']) && !empty($_SESSION['zalogowany']) && $poziom == 2 || $poziom == 1){
  49. if(isset($_GET['error'])){
  50. echo "<p>Błąd podczas zmiany danych!</p>";
  51. }elseif(isset($_GET['error_age'])){
  52. echo "<p>Błąd podczas zmiany danych!</p>";
  53. }elseif(isset($_GET['error_phone'])){
  54. echo "<p>Błąd podczas zmiany danych!</p>";
  55. }elseif(isset($_GET['error_code'])){
  56. echo "<p>Błąd podczas zmiany danych!</p>";
  57. }
  58. $sql = mysql_query("SELECT * FROM user WHERE login='$_SESSION[zalogowany]' ");
  59. if(!$sql){
  60. exit ('Problem podczas wykonywania zapytania : ' .mysql_error(). '');
  61. }
  62. echo "<form action=".$_SERVER['PHP_SELF']." method='POST'>";
  63. echo "<table class='dane'>";
  64. echo "<tr>";
  65. echo "<td><strong>Aktualne dane</strong></td>";
  66. echo "<td><strong>Nowe dane</strong></td>";
  67. echo "</tr>";
  68. while($dane = mysql_fetch_array($sql)){
  69. echo "<tr>";
  70. echo "<td>Imię: ". $dane['imie'] ."</td>";
  71. echo "<td><input type='text' name='imie' /></td>";
  72. echo "</tr>";
  73. echo "<tr>";
  74. echo "<td>Nazwisko: ". $dane['nazwisko'] ."</td>";
  75. echo "<td><input type='text' name='nazwisko' /></td>";
  76. echo "</tr>";
  77. echo "<tr>";
  78. echo "<td>Miejscowość: ". $dane['miejscowosc'] ."</td>";
  79. echo "<td><input type='text' name='miejscowosc' /></td>";
  80. echo "</tr>";
  81. echo "<tr>";
  82. echo "<td>Wiek: ". $dane['wiek'] ."</td>";
  83. echo "<td><input type='text' name='wiek' /></td>";
  84. echo "</tr>";
  85. echo "<tr>";
  86. echo "<td>Kontakt: ". $dane['kontakt'] ."</td>";
  87. echo "<td><input type='text' name='kontakt' /></td>";
  88. echo "</tr>";
  89. }
  90. echo "</table>";
  91. echo "<input type='submit' value='Zmień' name='zmiana' />";
  92. echo "</form>";
  93. }
  94. closetable();
  95. include 'footer.php';
  96. ?>


Pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Phpion oczywiście ma rację co do "czyszczenia pól". Ja podałem tylko techniczną stronę "Czy się da tak zrobić, żeby...", gdyż to czy zastosujemy sposób przeze mnie prezentowany czy Kshyhoo tak naprawdę jest tylko kawałkiem backendu i do tego jego jednym z ostatnich. Plusem mojego jest możliwość edycji konkretnych pól bez dotykania niepotrzebnie innych, ale to które rozwiązanie jest lepsze zależy od choćby frontu. Może bowiem być opcja czyszczenia jednego lub dwóch pól poprzez checkbox w stylu "Wyczyść tekst" i bez możliwości wyświetlenia innych. W ten sposób ingerencja w jedną kolumnę jest o wiele prostsza. Ale jak zaznaczam, to JAK się podejdzie do update w pewien sposób zależy od założeń projektu.
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 03:05