Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: POST nie przesyła danych
Forum PHP.pl > Forum > PHP
zakonnik
Witam,

Napisałem sobie taki mały skrypcik do zarządzania księgą gości(słuzy też do zarządznia działem linki stąd zmienna GET action):

  1. <?php
  2. function wyswietl($zapytanie){
  3. while ($row = mysql_fetch_array($zapytanie))
  4. {
  5. $imie = $row['imie'];
  6. $id = $row['id'];
  7. echo ('<option value="'.$id.'">'.$imie.'</option>');
  8. }
  9. echo('</select></td><td><input type="submit" value="wybierz" class="button"></td></tr></table></form>');
  10. }
  11.  
  12. function wyswietl_post($zapytanie)
  13. {
  14. global $id_zmiana;
  15. global $rezultat;
  16. while ($rezultat = mysql_fetch_array($zapytanie))
  17. {
  18. $id_zmiana = $rezultat['id'];
  19. echo ('
  20. <div id="ksiega_form">
  21. <form action="index.php?go=admin&lang='.$_GET['lang'].'&action=guestbook" method="POST">
  22. <p><input type="hidden" name="id_zmiana" value="'.$id_zmiana.'"></p>
  23. <table class="tabela_ksiega">
  24. <tr><td class="lewo_ksiega">Imię: </td>
  25. <td><input size="40" type="text" name="imie" value="'.$rezultat['imie'].'"></td>
  26. </tr>
  27. <tr>
  28. <td class="lewo_ksiega">e-mail: </td>
  29. <td><input size="40" type="text" name="mail" value="'.$rezultat['mail'].'"></td>
  30. </tr>
  31. <tr>
  32. <td class="lewo_ksiega">http:// </td>
  33. <td><input size="40" type="text" name="www" value="'.$rezultat['www'].'"></td>
  34. </tr>
  35. <tr>
  36. <td rowspan="2" class="lewo_ksiega" style="vertical-align:top;">Komentarz: </td>
  37. <td><textarea name="komentarz" cols="40" rows="10">'.$rezultat['komentarz'].'</textarea></td>
  38. </tr>
  39. <tr>
  40. <td><input type="submit" name="zmien" value="Zmień wpis" class="button"><input type="reset" value="Wyczyść" class="button"><input type="submit" name="usun" value="Usuń wpis" class="button"></td>
  41. </tr>
  42. </table>
  43. </form>
  44. </div>');
  45. }
  46. }
  47. $baza = 'baza';
  48. $baza_host = 'host';
  49. $baza_uzyszkodnik = 'user';
  50. $baza_haselko = 'haslo';
  51. $polaczenie = @mysql_connect($baza_host,$baza_uzyszkodnik,$baza_haselko) or die('Nie mogę się połączyć z bazą.');
  52. @mysql_select_db($baza,$polaczenie) or die('Nie mogę wybrać bazy');
  53. $zapytanie = mysql_query('SELECT imie,id FROM ksiega');
  54. echo('<form action="index.php?go=admin&lang='.$_GET['lang'].'&ksiega=select&action=guestbook" method="POST"><table><tr><td><select name="wybierz">');
  55. wyswietl($zapytanie);
  56.  
  57. if (isset($_POST['usun'])) $akcja2 = $_POST['usun'];
  58. elseif (isset($_POST['zmien'])) $akcja2 = $_POST['zmien'];
  59. else $akcja2 = 0;
  60. if (isset($_GET['ksiega'])) $akcja = $_GET['ksiega'];
  61. else $akcja = 0;
  62. if ($akcja === 'select') {
  63. $zapytanie = mysql_query('SELECT * FROM ksiega WHERE id = '.$_POST['wybierz'].'');
  64. wyswietl_post($zapytanie); }
  65. if ($akcja2 === 'Zmień wpis')
  66. {
  67. mysql_query("UPDATE ksiega SET imie='".$_POST['imie']."', mail='".$_POST['mail']."',www='".$_POST['www']."',komentarz='".$_POST['komentarz']."' WHERE id=".$_POST['id_zmiana']."");
  68. echo ("wpis zmieniony");
  69. }
  70. elseif ($akcja2 === 'Usuń wpis')
  71. {
  72. mysql_query("DELETE FROM ksiega WHERE id=".$_POST['id_zmiana']."");
  73. echo ('wpis usunięty');
  74. }
  75. else {}
  76. ?>



Problem polega na updacie bazy danych, dane wypisuje bezproblemowo, po wybraniu nicka pojawia się jego wpis, ale po kliknięciu na "usuń wpis" bądź "zmień wpis" nie uaktualnia bazy. Kod się wykonuje ponieważ mam wyświetlone echo('wpis usunięty'), wnioskuję z tego że nie przesyła danych potrzebnych do uaktualnień bazy danych metodą POST, tylko nie wiem dlaczego. Oczywiście mogę się mylić, nie jestem zaawansowany w programowaniu.
kfc4
Wyświetl gdzieś to zapytanie
Cytat
"DELETE FROM ksiega WHERE id=".$_POST['id_zmiana'].""

Np. po wpis usunięty. Dalej wykonaj to zapytanie gdzieś w phpMyAdminie, aha i wklej wynik na forum.
patryczakowy
spróbujtak
  1. if (isset($_POST['usun'])) $akcja2 = 'Usuń wpis';
  2. elseif (isset($_POST['zmien'])) $akcja2 = 'Zmień wpis';
  3. else $akcja2 = 0;
  4.  
zakonnik
Cytat(kfc4 @ 12.09.2009, 07:38:21 ) *
Wyświetl gdzieś to zapytanie
Np. po wpis usunięty. Dalej wykonaj to zapytanie gdzieś w phpMyAdminie, aha i wklej wynik na forum.


Z bazą nie ma problemów, zapisuje jak należy. Po wpisaniu kodu patryczakowego zadziałało, i mała ciekawostka, po wróceniu do mojej wersji również działa O.o
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.