Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] UPDATE danych
Forum PHP.pl > Forum > Przedszkole
michal_86
witam,
mam taki o to formularz w php :
  1. <?php
  2.  
  3. mysql_connect ("127.0.0.1","root");
  4. mysql_select_db (biuradowyn);
  5. $stan = $_GET['stan'];
  6. $idmodyf = $_GET['idmodyf'];
  7.  
  8.  
  9. if($stan=='modyf') {
  10. $zapytanie = "SELECT * FROM do500 where id=$idmodyf";
  11. $wykonaj = mysql_query ($zapytanie);
  12. $tablica = mysql_fetch_array($wykonaj);
  13. echo "<form method=\"get\" action=\"update2do500.php\">
  14. <div align=\"center\">
  15. <center>
  16. <table border=\"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">
  17. <tr>
  18. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Id</font></td>
  19. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"id\" value=\"".$tablica['id']."\" size=\"20\"></font></td>
  20. </tr>
  21. <tr>
  22. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Lokalizacja</font></td>
  23. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"lokalizacja\" value=\"".$tablica['lokalizacja']."\" size=\"20\"></font></td>
  24. </tr>
  25. <tr>
  26. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Tytuł</font></td>
  27. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"tytul\" value=\"".$tablica['tytul']."\" size=\"20\"></font></td>
  28. </tr>
  29. <tr>
  30. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Opis</font></td>
  31. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"opis\" value=\"".$tablica['opis']."\" size=\"20\"></font></td>
  32. </tr>
  33. <tr>
  34. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">powierzchnia</font></td>
  35. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"powierzchnia\" value=\"".$tablica['powierzchnia']."\" size=\"20\"></font></td>
  36. </tr>
  37. <tr>
  38. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Czynsz</font></td>
  39. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"czynsz\" value=\"".$tablica['czynsz']."\" size=\"20\"></font></td>
  40. </tr>
  41. <tr>
  42. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Dostępne</font></td>
  43. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"dostepne\" value=\"".$tablica['dostepne']."\" size=\"20\"></font></td>
  44. </tr>
  45. <tr>
  46. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Nazwa zdjęcia Głównego</font></td>
  47. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"zdjecie\" value=\"".$tablica['zdjecie']."\" size=\"20\"></font></td>
  48. </tr>
  49. <tr>
  50. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Nazwa zdjęcia1</font></td>
  51. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"zdjecie1\" value=\"".$tablica['zdjecie1']."\" size=\"20\"></font></td>
  52. </tr>
  53. <tr>
  54. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Nazwa zdjęcia2</font></td>
  55. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"zdjecie2\" value=\"".$tablica['zdjecie2']."\" size=\"20\"></font></td>
  56. </tr>
  57. <tr>
  58. <td width=\"100%\" colspan=\"2\">
  59. <p align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"hidden\" name=\"Modyfikuj\" value=\"$idmodyf\"><input type=\"submit\" value=\"modyfikuj\" name=\"send\"></font></td>
  60. </tr>
  61. </table>
  62. </center>
  63. </div>
  64. </form>";
  65.  
  66. }
  67.  
  68.  
  69. ?>


i taką funkcję UPDATE dla tego formularza :
  1. <?php
  2.  
  3. mysql_connect ("127.0.0.1","root");
  4. mysql_select_db (biuradowyn);
  5.  
  6.  
  7.  
  8. $idmodyf = $_GET['$idmodyf'];
  9. $send = $_GET['$send'];
  10. $id = $_GET['$id'];
  11. $lokalizacja = $_GET['$lokalizacja'];
  12. $tytul = $_GET['$tytul'];
  13. $opis = $_GET['$opis'];
  14. $powierzchnia = $_GET['$powierzchnia'];
  15. $czynsz = $_GET['$czynsz'];
  16. $dostepne = $_GET['$dostepne'];
  17. $zdjecie = $_GET['$zdjecie'];
  18. $zdjecie1 = $_GET['$zdjecie1'];
  19. $zdjecie2 = $_GET['$zdjecie2'];
  20. $Modyfikuj = $_GET['$Modyfikuj'];
  21.  
  22. if ($send=='modyfikuj')
  23. {
  24. $zapytanie = "UPDATE do500 SET id='$id', lokalizacja='$lokalizacja', tytul='$tytul', opis='$opis', powierzchnia='$powierzchnia', czynsz='$czynsz', dostepne='$dostepne', zdjecie='$zdjecie', zdjecie1='$zdjecie1', zdjecie2='$zdjecie2' WHERE id='$Modyfikuj'";
  25. $wykonaj = mysql_query ($zapytanie);
  26. echo "<br><br><br><br><br><center><font size='5'>Dane poprawione<BR><a href=\"updatedo500.php\">Obejrzyj poprawiona bazę</a></font></center>";
  27. }
  28. else {
  29. echo "<br><br><br><br><br><center><font size='5'>Wystąpił błąd podczas aktualizowania danych.<br> Spróbuj ponownie, jeśli się nie uda - skasuj i ponownie dodaj ofertę<br><a href='updatedo500.php'>POWRÓT DO FORMULARZA AKTUALIZACJI</a></font></center>";
  30. }
  31. ?>


formularz wszystko ładnie wysyła to jest send=modyfikuj i Modyfikuj= liczba jaką wpiszę w formularzu

ALE niestety danych mi nie dodaje - czy funkcja update jest źle sformułowana?

szukałem literówek ale się nie dopatrzyłem..
Rysh
Daj:
  1. $wykonaj = mysql_query ($zapytanie) or die ("Błąd: ". mysql_error());


Pozatym sprawdzasz:
  1. if (isset($_GET['Modyfikuj'])) {
  2. //wykona
  3. }
michal_86
Kurcze zastosowałem obie - i tak funkcja isset mi nie działa - sprawdzałem popularnym formularzem - jest możliwość jej włączenia?
Błąd żaden nie wyskakuje
użyłem tak na chybił trafił !empty ale to nic nie daje - wychodzi mi komunikat else "Wystąpił błąd podczas aktualizowania danych"

tak jak pisałem wcześniej formularz wysyła odpowiednie informacje problem jest z ich odbiorem i przerobieniem..czyli $zapytanie...


Rysh
Jeśli byś miał zapytanie złe to Ci funkcja mysql_error zwróci co jest w niej takiego źle. Więc dopisz na końcu mysql_query, or die i idz na strone spróbuj coś dodać i pokaż jaki błąd Ci zwróci.
mortus
A po co są te $ w $_GET['$...'], jak niżej:
  1. $idmodyf = $_GET['$idmodyf'];
  2. $send = $_GET['$send'];
  3. $id = $_GET['$id'];
  4. $lokalizacja = $_GET['$lokalizacja'];
  5. $tytul = $_GET['$tytul'];
  6. $opis = $_GET['$opis'];
  7. $powierzchnia = $_GET['$powierzchnia'];
  8. $czynsz = $_GET['$czynsz'];
  9. $dostepne = $_GET['$dostepne'];
  10. $zdjecie = $_GET['$zdjecie'];
  11. $zdjecie1 = $_GET['$zdjecie1'];
  12. $zdjecie2 = $_GET['$zdjecie2'];
  13. $Modyfikuj = $_GET['$Modyfikuj'];

?
No i jeszcze po co dwa razy wysyłać id (jako idmodyf i Modyfikuj), przecież id i tak nie powinno się zmieniać, zatem pole w formularzu powinno być albo ukryte, albo nieaktywne i zawsze jest to takie samo id?

EDIT: Id jest wysyłane nawet trzykrotnie: jako idmodyf, id i Modyfikuj. W zapytaniu z UPDATE mimo wszystko nie powinno być w ogóle SET id='$id'!
michal_86
o boże - rzeczywiście to przez $ - mam prośbę może mi ktoś polecić jakiś dobry edytor który na bieżąco pokazuje takie błędy?? albo jakoś oznacza kolorem ...

i do tego odpowiednio zapisuje skrypty bez niewidzialnych linijek bo mam też problem z sesją- prawdopodobnie mi notepad dodaje jakieś ukryte znaczniki przed albo po <?php

dzięki za pomoc i spostrzegawczość exclamation.gif
Rysh
Pod windowsa polecam notepad++ a w nim kolorowanie składni i dopełnianie funkcji (czy jak to sie nazywa winksmiley.jpg)
michal_86
a on nie dodaje tych ukrytych znaków?
minolone
Dodawac kolego dodaje te ukryte znaki bo sam mialem z tym problem kiedys ale jest mozliwosc kodowania w UTF-8 bez BOM tak ze jest wtedy wsyzstko ok, sam go uzywam i jest naprawde dobry
michal_86
ok - w takim razie zainteresuję się nim poważniej.

Dzięki za pomoc jeszcze raz!

Pozdr!
mortus
Ja używam PSPad'a, ale trzeba ustawić kodowanie na UTF-8 bez BOM. Korzystam również z Aptany. Przy czym błędu z dolarem w nazwie żaden program by nie wykrył, bo nazwa jest łańcuchem znaków zawartym pomiędzy '' lub "". Poprawiłem Twój kod:
- formularz
  1. <?php
  2. mysql_connect("127.0.0.1", "root");
  3. mysql_select_db("biuradowyn");
  4. $stan = $_GET['stan'];
  5. $idmodyf = $_GET['idmodyf'];
  6.  
  7.  
  8. if ($stan == 'modyf') {
  9. $zapytanie = "SELECT * FROM do500 where id=$idmodyf;";
  10. $wykonaj = mysql_query($zapytanie);
  11. $tablica = mysql_fetch_array($wykonaj);
  12.  
  13. ?>
  14. <form method="get" action="update2do500.php">
  15. <div align="center">
  16. <center>
  17. <table border="1" width="50%" bordercolorlight="#000000" cellspacing="0" cellpadding="0">
  18. <tr>
  19. <td width="50%">
  20. <font size="2" face="Verdana">
  21. Id
  22. </font>
  23. </td>
  24. <td width="50%" align="center">
  25. <font size="2" face="Verdana">
  26. <input type="text" name="id" value="<?php echo $tablica['id']; ?>" size="20" disabled="true">
  27. </font>
  28. </td>
  29. </tr>
  30. <tr>
  31. <td width="50%">
  32. <font size="2" face="Verdana">
  33. Lokalizacja
  34. </font>
  35. </td>
  36. <td width="50%" align="center">
  37. <font size="2" face="Verdana">
  38. <input type="text" name="lokalizacja" value="<?php echo $tablica['lokalizacja']; ?>" size="20">
  39. </font>
  40. </td>
  41. </tr>
  42. <tr>
  43. <td width="50%">
  44. <font size="2" face="Verdana">
  45. Tytuł
  46. </font>
  47. </td>
  48. <td width="50%" align="center">
  49. <font size="2" face="Verdana">
  50. <input type="text" name="tytul" value="<?php echo $tablica['tytul']; ?>" size="20">
  51. </font>
  52. </td>
  53. </tr>
  54. <tr>
  55. <td width="50%">
  56. <font size="2" face="Verdana">
  57. Opis
  58. </font>
  59. </td>
  60. <td width="50%" align="center">
  61. <font size="2" face="Verdana">
  62. <input type="text" name="opis" value="<?php echo $tablica['opis']; ?>" size="20">
  63. </font>
  64. </td>
  65. </tr>
  66. <tr>
  67. <td width="50%">
  68. <font size="2" face="Verdana">
  69. powierzchnia
  70. </font>
  71. </td>
  72. <td width="50%" align="center">
  73. <font size="2" face="Verdana">
  74. <input type="text" name="powierzchnia" value="<?php echo $tablica['powierzchnia']; ?>" size="20">
  75. </font>
  76. </td>
  77. </tr>
  78. <tr>
  79. <td width="50%">
  80. <font size="2" face="Verdana">
  81. Czynsz
  82. </font>
  83. </td>
  84. <td width="50%" align="center">
  85. <font size="2" face="Verdana">
  86. <input type="text" name="czynsz" value="<?php echo $tablica['czynsz']; ?>" size="20">
  87. </font>
  88. </td>
  89. </tr>
  90. <tr>
  91. <td width="50%">
  92. <font size="2" face="Verdana">
  93. Dostępne
  94. </font>
  95. </td>
  96. <td width="50%" align="center">
  97. <font size="2" face="Verdana">
  98. <input type="text" name="dostepne" value="<?php echo $tablica['dostepne']; ?>" size="20">
  99. </font>
  100. </td>
  101. </tr>
  102. <tr>
  103. <td width="50%">
  104. <font size="2" face="Verdana">
  105. Nazwa zdjęcia Głównego
  106. </font>
  107. </td>
  108. <td width="50%" align="center">
  109. <font size="2" face="Verdana">
  110. <input type="text" name="zdjecie" value="<?php echo $tablica['zdjecie']; ?>" size="20">
  111. </font>
  112. </td>
  113. </tr>
  114. <tr>
  115. <td width="50%">
  116. <font size="2" face="Verdana">
  117. Nazwa zdjęcia1
  118. </font>
  119. </td>
  120. <td width="50%" align="center">
  121. <font size="2" face="Verdana">
  122. <input type="text" name="zdjecie1" value="<?php echo $tablica['zdjecie1']; ?>" size="20">
  123. </font>
  124. </td>
  125. </tr>
  126. <tr>
  127. <td width="50%">
  128. <font size="2" face="Verdana">
  129. Nazwa zdjęcia2
  130. </font>
  131. </td>
  132. <td width="50%" align="center">
  133. <font size="2" face="Verdana">
  134. <input type="text" name="zdjecie2" value="<?php echo $tablica['zdjecie2']; ?>" size="20">
  135. </font>
  136. </td>
  137. </tr>
  138. <tr>
  139. <td width="100%" colspan="2">
  140. <p align="center">
  141. <font size="2" face="Verdana">
  142. <input type="submit" value="modyfikuj" name="send">
  143. </font>
  144. </p>
  145. </td>
  146. </tr>
  147. </table>
  148. </center>
  149. </div>
  150. </form>
  151. <?php
  152. }
  153. ?>
- i skrypt uaktualniający
  1. <?php
  2.  
  3. mysql_connect("127.0.0.1", "root");
  4. mysql_select_db("biuradowyn");
  5.  
  6. $send = $_GET['send'];
  7. $id = $_GET['id'];
  8. $lokalizacja = $_GET['lokalizacja'];
  9. $tytul = $_GET['tytul'];
  10. $opis = $_GET['opis'];
  11. $powierzchnia = $_GET['powierzchnia'];
  12. $czynsz = $_GET['czynsz'];
  13. $dostepne = $_GET['dostepne'];
  14. $zdjecie = $_GET['zdjecie'];
  15. $zdjecie1 = $_GET['zdjecie1'];
  16. $zdjecie2 = $_GET['zdjecie2'];
  17.  
  18. if ($send == 'modyfikuj') {
  19. $zapytanie = "UPDATE do500 SET lokalizacja='$lokalizacja', tytul='$tytul', opis='$opis', powierzchnia='$powierzchnia', czynsz='$czynsz', dostepne='$dostepne', zdjecie='$zdjecie', zdjecie1='$zdjecie1', zdjecie2='$zdjecie2' WHERE id=$id";
  20. $wykonaj = mysql_query($zapytanie);
  21. echo "<br><br><br><br><br><center><font size='5'>Dane poprawione<BR><a href=\"updatedo500.php\">Obejrzyj poprawiona bazę</a></font></center>";
  22. } else {
  23. echo "<br><br><br><br><br><center><font size='5'>Wystąpił błąd podczas aktualizowania danych.<br> Spróbuj ponownie, jeżeli się nie uda - skasuj i ponownie dodaj ofertę<br><a href='updatedo500.php'>POWRÓT DO FORMULARZA AKTUALIZACJI</a></font></center>";
  24. }
  25. ?>
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.