Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]edytuje ostatni rekord z tabeli - zamisst tego wybranego :/
Forum PHP.pl > Forum > Przedszkole
mattii
  1. <?php
  2. if(isset($_SESSION['prawid_uzyt']))
  3. {
  4. require_once "pliki/php/db_connect.php";
  5. db_connect();
  6. if(isset($_POST['usun']) )
  7. {
  8. $zapytanie2="DELETE FROM kategoria WHERE
  9. id_kategorii= '".$_POST['katid']."'" ;
  10. $wynik2 = $bd_lacz->query($zapytanie2);
  11. }
  12. $zapytanie = "SELECT * FROM kategoria ";
  13. $wynik = $bd_lacz->query($zapytanie);
  14. $ile=$wynik->num_rows;
  15. if ($ile==0) {
  16. echo "Baza danych nie zawiera jeszcze żadej kategorii towarów.";
  17. } else {
  18. ?>
  19. <table id="rounded-corner" >
  20. <thead>
  21. <tr>
  22. <th scope="col" class="rounded-login">Id Kategorii</th>
  23. <th scope="col" class="rounded-q1">Nazwa Kategorii</th>
  24. <th scope="col" class="rounded-q9"></th>
  25. <th scope="col" class="rounded-q10"></th>
  26. </tr>
  27. </thead>
  28. <tbody>
  29. <?php
  30. for ($i=0;$i<$ile;$i++) {
  31. $wiersz=$wynik->fetch_assoc();
  32. echo '<form method="post">';
  33. echo '<tr>';
  34. echo '<td>';
  35. echo $wiersz['id_kategorii'];
  36. echo'</td>';
  37. echo '<td>';
  38. echo $wiersz['nazwa_kategorii'];
  39. echo '</td>';
  40. echo '<td>';
  41. echo '<input type="submit" name="edycja" value="Edycja" > <input type="hidden" name="kat_edit" value="'.$wiersz['id_kategorii'].'"';
  42. echo'</td>';
  43. echo '<td>';
  44. echo '<input name="usun" type="submit" value="Usuń"><input type="hidden" name="katid" value="'.$wiersz['id_kategorii'].'"';
  45. echo'</td>';
  46. echo'</tr></tbody>';
  47. echo '</form>';
  48. }
  49. echo '<tfoot>
  50. <tr>
  51. <td colspan="3" class="rounded-foot-left"><em>Tabela przedstawia kategorie towarów</em></td>
  52. <td class="rounded-foot-right">&nbsp;</td>
  53. </tr>
  54. </tfoot>
  55. </table>';
  56. }
  57. if(isset($_POST['edycja'])){
  58. $zapytanie3 = "SELECT * FROM kategoria WHERE id_kategorii='".$_POST['kat_edit']."' ";
  59. $wynik = $bd_lacz->query($zapytanie3);
  60. $ile=$wynik->num_rows;
  61. for ($i=0;$i<$ile;$i++) {
  62. $wiersz=$wynik->fetch_assoc();
  63. echo '<form method="post">';
  64. echo '<table id="rounded-corner" >';
  65. echo '
  66. <thead>
  67. <tr>
  68. <th scope="col" class="rounded-login">Id Kategorii</th>
  69. <th scope="col" class="rounded-q1">Nazwa Kategorii</th>
  70. <th scope="col" class="rounded-q9"></th>
  71. <th scope="col" class="rounded-q10"></th>
  72. </tr>
  73. </thead>
  74. <tbody>
  75. ';
  76. echo '<tr>';
  77. echo '<td>';
  78. echo $wiersz['id_kategorii'];
  79. echo'</td>';
  80. echo '<td>';
  81. echo '<input type="text" name="nazwa_kategorii" size="14" VALUE="'.$wiersz['nazwa_kategorii'].'">';
  82. echo'</td>';
  83. echo '<td></td>';
  84. echo '<td >';
  85. echo '<a href="index.php?strona=kategoria" title="kategoria"><input name="edytowano" type="submit" value="Zmień"></a>';
  86. echo'</td >';
  87. echo'</tbody>';
  88. echo '<tfoot>
  89. <tr>
  90. <td colspan="3" class="rounded-foot-left"><em>Edycja kategorii towaru</em></td>
  91. <td class="rounded-foot-right">&nbsp;</td>
  92. </tr>
  93. </tfoot>';
  94. echo '</table> ';
  95. echo'</form>';
  96. }
  97. }
  98. if (isset($_POST["edytowano"]))
  99. {
  100. $zapytanie4="UPDATE kategoria
  101. SET
  102. kategoria.nazwa_kategorii='".$_POST["nazwa_kategorii"]."' WHERE
  103. kategoria.id_kategorii='".$wiersz['id_kategorii']."' ";
  104. $wynik4 = $bd_lacz->query($zapytanie4);
  105. }
  106. }
  107. else
  108. {
  109. echo '<p>Użytkownik niezalogowany.</p>';
  110. echo '<p>Tylko zalogowani użytkownicy mogą oglądać tę stronę.</p>';
  111. }
  112. ?>
  113.  



tutaj po na cisnieciu przycisku edytuj - wiersz gdzie nacisniety został przycisk edytuj pod tabela wyswietla sie do edycji - i tu dziala wszystko tak jak chce, natomiast jak klikam zatwierdź - to edytuje się ale wiersz ostatni - a nie ten wywolany :/ - w czym tu jest problem questionmark.gif
Kshyhoo
Edytuj ten post, bo się odechciewa przewijać w połowie strony.
mattii
Zrobione winksmiley.jpg
Kshyhoo
Wyprintuj sobie, co przechodzi Ci przez $_POST i porównaj, bo na moje, nie to co ma.
mattii
więc w momencie otwierania do edycji jest wszystko jak trzeba

ale w momencie dokonywania edycji - już jest tak ze zmienna zawiera zawsze id ostatniego wiersza :/ sciana.gif
Kshyhoo
Więc... Wyprintuj i wklej to, co dostajesz z POSTem...
mattii
Cytat(Kshyhoo @ 17.03.2010, 18:00:21 ) *
Więc... Wyprintuj i wklej to, co dostajesz z POSTem...



chodzi Ci zapewne o ten fragment questionmark.gif

<input type="submit" name="edycja" value="Edycja" > <input type="hidden" name="kat_edit" value="'.$wiersz['id_kategorii'].'"';

więć w chwili wybory do edycji jest ok - przesyła id to wybrane czyli np 1

a w chwili gdy trzeba zapisać zapisuje id - ostatnie jakie jest czyli aktualnie 4

Kshyhoo
Nie, chodzi o taki fragment:
  1. print('<pre>POST: ');
  2. print_r($_POST);
  3. print('</pre>');

Wtedy zostanie wyświetlona zawartość tablicy $_POST... Wklej to pod skryptem i wyślij formularz.
mattii
juz ma problem z głowy ;]

formularz otiwerał formularz i zawartosc sie zmienila, zrobilem pole hidden i przez nie to wysłałem i śmiga ;]

dzięki za pomoc.
Ociu
Zamiast $wiersz['id_kategorii'] w zapytaniu SQL spróbuj dać $_POST['kat_edit'].
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.