Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z update
Forum PHP.pl > Forum > Przedszkole
Dziadzia
Cześć,

nie mogę przebrnąć przez jeden temat. Otóż po wykoanniu poniższego kodu w bazie danych w tabeli kursanci po update pole robi się puste a nie zmienione.

Od początku idąc mam plik kursanci.php w którym:

  1. <form action="index.php?p=edytuj_kursanta" method="POST">
  2. <input type="submit" value="" class="submit_kursanci" />
  3. <table id="kursanci-tabela">
  4.  
  5. tutaj cała tabela
  6.  
  7. <?php
  8.  
  9. $sql = (" SELECT * FROM kursanci");
  10. $wynik = mysql_query($sql);
  11. $tabela = array();
  12. while($wiersz = mysql_fetch_object($wynik)){
  13. $tabela[]=$wiersz;
  14. }
  15. $a=1;
  16.  
  17. foreach ($tabela as $wiersz){ ?>
  18.  
  19. <tr class="wiersz_kolejny_kursant">
  20.  
  21. <td class="kolumna_checkbox"> <input type="checkbox" name="jakieid" value="<?php echo '' .$wiersz->id. ''?>" id="checkid"> </td>
  22.  
  23. reszta tabeli
  24. <?php $a+=1; } ?>
  25.  
  26.  
  27. </table>
  28.  
  29. </form>

Plik ten wypisuje mi wszystkie osoby które mam w tabeli kursanci. Z lewej strony tabeli mam checkboxy przy każdej osobie. Zaznaczam tego checkboxa daję edytuj i pojawia mnie się ta konkretna osoba w pliku edytuj_kursanta.php :

  1. edytuj kursanta <br />
  2. <?php
  3. $jakieid = $_POST['jakieid'];
  4. $imie = $_POST['imie'];
  5. ?>
  6.  
  7. <?php
  8.  
  9. $sql = (" SELECT * FROM kursanci WHERE id='$jakieid'");
  10. $wynik = mysql_query($sql);
  11. $tabela = array();
  12. while($wiersz = mysql_fetch_object($wynik)){
  13. $tabela[]=$wiersz;
  14. }
  15.  
  16.  
  17. foreach ($tabela as $wiersz){ ?>
  18.  
  19.  
  20. <table class="dodaj_nowego_kursanta_tabelka">
  21.  
  22. <tr class="wiersz_nowy_kursant">
  23.  
  24. <td class="kolumna_nowy_kursant"> Imię: </td>
  25.  
  26. <td class="imie_edytuj_kursant"> <?php echo '' .$wiersz->imie. ''; ?> </td>
  27.  
  28. </tr>
  29.  
  30. <tr class="wiersz_nowy_kursant">
  31.  
  32. <td class="kolumna_nowy_kursant"> Nazwisko: </td>
  33.  
  34. <td class="nazwisko_edytuj_kursant"> <?php echo '' .$wiersz->nazwisko. ''; ?> </td>
  35.  
  36. </tr>
  37.  
  38. <tr class="wiersz_nowy_kursant">
  39.  
  40. <td class="kolumna_nowy_kursant"> Kurs: </td>
  41.  
  42. <td class="kurs_edytuj_kursant"> <?php echo '' .$wiersz->kurs. ''; ?> </td>
  43.  
  44. </tr>
  45.  
  46. <tr class="wiersz_nowy_kursant">
  47.  
  48. <td class="kolumna_nowy_kursant"> Rocznik: </td>
  49.  
  50. <td class="rocznik_edytuj_kursant"> <?php echo '' .$wiersz->rocznik. ''; ?> </td>
  51.  
  52. </tr>
  53.  
  54. <tr class="wiersz_nowy_kursant">
  55.  
  56. <td class="kolumna_nowy_kursant"> Telefon: </td>
  57.  
  58. <td class="telefon_edytuj_kursant"> <?php echo '' .$wiersz->telefon. ''; ?> </td>
  59.  
  60. </tr>
  61.  
  62. <tr class="wiersz_nowy_kursant">
  63.  
  64. <td class="kolumna_nowy_kursant"> Dni kursu: </td>
  65.  
  66. <td class="dni_kursu_edytuj_kursant"> <?php echo '' .$wiersz->dnikursu. ''; ?> </td>
  67.  
  68. </tr>
  69.  
  70. <tr class="wiersz_nowy_kursant">
  71.  
  72. <td class="kolumna_nowy_kursant"> Opłata: </td>
  73.  
  74. <td class="oplata_edytuj_kursant"> <?php echo '' .$wiersz->oplata. ''; ?> </td>
  75.  
  76. </tr>
  77.  
  78. <tr class="wiersz_nowy_kursant">
  79.  
  80. <td class="kolumna_nowy_kursant"> Opłacone: </td>
  81.  
  82. <td class="oplacone_edytuj_kursant"> <?php echo '' .$wiersz->oplacone. ''; ?> </td>
  83.  
  84. </tr>
  85.  
  86. <tr class="wiersz_nowy_kursant">
  87.  
  88. <td class="kolumna_nowy_kursant"> Multisport: </td>
  89.  
  90. <td class="multisport_edytuj_kursant"> <?php echo '' .$wiersz->multisport. ''; ?> </td>
  91.  
  92. </tr>
  93.  
  94. <tr class="wiersz_nowy_kursant">
  95.  
  96. <td class="kolumna_nowy_kursant"> Adres: </td>
  97.  
  98. <td class="adres_edytuj_kursant"> <?php echo '' .$wiersz->adres. ''; ?> </td>
  99.  
  100. </tr>
  101.  
  102. <tr class="wiersz_nowy_kursant">
  103.  
  104. <td class="kolumna_nowy_kursant"> E-mail: </td>
  105.  
  106. <td class="email_edytuj_kursant"> <?php echo '' .$wiersz->email. ''; ?> </td>
  107.  
  108. </tr>
  109.  
  110. <tr class="wiersz_nowy_kursant">
  111.  
  112. <td class="kolumna_nowy_kursant"> Data rozpoczęcia: </td>
  113.  
  114. <td class="data_rozpoczecia_edytuj_kursant"> <?php echo '' .$wiersz->datarozpoczecia. ''; ?> </td>
  115.  
  116. </tr>
  117.  
  118. </table>
  119. <?php } ?>
  120.  
  121. <?php
  122.  
  123. $ins2 = mysql_query(" UPDATE kursanci SET `imie`='$imie' WHERE id='$jakieid' ");
  124. ?>
  125.  
  126. <form action="index.php?p=edytuj_kursanta" method="post">
  127.  
  128. <input type="text" name="imie" class="input_nowy_kursant" />
  129.  
  130. <input type="submit" value="zmień" />
  131. </form>


W tym pliku tak jak napisałem wypisuje mnie się już konkretna osoba oraz pole input do wprowadzenia zmiany, w tym wypadku chodzi o zmianę imienia. Niestety jak wpisuję jakieś imię daję zmień, pojawia mi się tylko puste pole inputa oraz przycisk zmień (czyli bez poprzedniej tabelki) oraz w bazie danych pole wcześniej wypełnione staje się puste.

Generalnie nie upieram się, że ten sposób edycji oraz zmiany od razu danych był dobry i trzeba go "naprawić". Jeżeli macie jakieś sugestie jak to łatwiej zrobić to bardzo będę wdzięczny za pomoc.
Pozdrawiam
Pyton_000
Zapytanie do bazy (UPDATE) okraś warunkiem if(isset($_POST['imie'])) ...
nospor
Problem z bazą nie ma żadnego związku. Przenosze
Dziadzia
"Zapytanie do bazy (UPDATE) okraś warunkiem if(isset($_POST['imie'])) ... "

Dodałem warunek. Na samym początku oczywiście wypisuje, że nie istnienie (po else), następnie gdy wpiszę imię i dam zapisz tekst (nie istnieje) znika, a reszta pozostaje bez zmian. Czyli dlej nie działa smile.gif
Turson
Przez formularz przesyłasz jedynie "jakieid" a "imie" nie. Przecież samo z siebie się nie wyśle...
W kursanci.php foreach() dodaj
  1. <input type="hidden" name="imie" value="<?=$wiersz->imie?>"/>
Dziadzia
po dodaniu Twojego kodu zawsze wpisuje mnie się ostatni wypisane imię z pliku kursanci.php. plik kursanci.php służy do wypisania wszystkich kursantów, następnie po kliknięciu checkboxa i "edytuj" przechodzi nam do podstrony edytuj_kursanta.php i tutaj wypisywane są jeszcze raz dane osoby które wybraliśmy, i to właśnie dane tej osoby pragnę zmienić, na te co wpisuję w formularzu smile.gif Wydaje mnie się, że problem może polegać na tym, że z pliku kursanci.php przechodzę poprzez przycisk submit do pliku edytuj_kursanta.php a później w edytuj_kursanta.php chcę wykonać kolejny formularz...

Może po prostu sobie odpuścić ten pierwszy formularz w kursanci.php i zapisać id osoby do sesji i przekazać do strony edytuj_kursanta.php w któej już będzie formularz... Pytanie tylko jak zapisać to ID a później odczytać smile.gif

totalnie nie rozkminiam dlaczego te dane nie chcą się wysyłać. Pozmieniałem trochę w kodzie i wygląda to teraz tak:

  1.  
  2. <form action="index.php?p=zapisz2" method="POST">
  3. <input type="submit" value="" class="submit_kursanci" />
  4. <td class="kolumna_checkbox"> <input type="checkbox" name="jakieid" value="<?php echo''.$wiersz->id.'';?>" id="checkid"> </td>
  5. </form>


wysyła mi to do pliku zapisz2.php informację jakie id. w pliku zapisz2.php mam:

  1. <?php
  2. $jakieid = $_POST['jakieid'];
  3. $imie = $_POST['imie'];
  4.  
  5.  
  6. if ($imie) {
  7.  
  8. $ins = mysql_query("UPDATE kursanci SET `imie`='$imie' WHERE id='$jakieid' ");
  9. }
  10.  
  11. else { echo 'Wpisz dane'; }
  12.  
  13. ?>
  14.  
  15. <h2>Wpisz nowe dane kursanta</h2>
  16. <?php echo $jakieid; ?>
  17.  
  18. <form action="index.php?p=zapisz2" method="post">
  19.  
  20. <td class="imie_nowy_kursant"> <input type="text" name="imie" class="input_nowy_kursant" /> </td>
  21.  
  22. <input type="submit" value="Zapisz" class="zapisz_przycisk_nowy_kursant" />
  23. </form>


Rzecz polega na tym, że nie działa. Nie rozumiem tutaj jednej kwesti. W linicje gdzie jest echo $jakieid wypisuje mi się dobre id. Cały god nie działa i nic się nie dzieje w bazie. Jeżeli w zapytaniu sql zmienie z WHERE id='$jakieid' na WHERE id='1' (czyli id kogoś tam) to wszystko działa......... zmienia się imie w tej osobie. W takim razie moje pytanie brzmi, czemu jak wypisuje dobrze to i tak to nie działa? Jakieś sugestie? smile.gif


Znalezione! smile.gif wystarczyło dodać w formularzu w pliku zapisz2.php <input type="hidden" name="jakieid" value="<?php echo $jakieid; ?>" />
Po prostu formularz przesyłał nowe puste $jakieid.
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.