Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Błąd w aktualizacji rekordu (nadpisuje + dodaje nie potrzebnie nowy)
Forum PHP.pl > Forum > Przedszkole
MateuszRyaN
Witam, tak jak w temacie. Kombinowałem z EDYCJĄ rekordów i natrafiłem na pewien problem. Gdzieś jest błąd w edycji, ale nie potrafie sobie poradzić. Podeśle 2 screeny w których będzie tabela przed wciśnięciem przycisku EDIT i po:

przed kliknięciem EDIT:

po kliknięciu: (dodam że w formularzu edycji na razie mam tylko nazwisko i telefon dla testów...no i wyświetla się z echa Że rekord został poprawnie zaktualizowany)


Jak widać wszystko ładnie zmienia...tylko całość wygląda jakby nadpisywało (bo nawet inputa ID dałem z hidden na text i pobierało poprawne ID do edycji) Nie wiem czym to moze być spowodowane. Wkleje poniżej na tyle ile mogłem poprawiony kod:

  1. <?php
  2. $connection = @mysql_connect('localhost', 'xxx', 'yyy')
  3. or die('Brak połączenia z serwerem MySQL');
  4. $db = @mysql_select_db('palma77_manager', $connection)
  5. or die('Nie mogę połączyć się z bazą danych');
  6. mysql_query("SET CHARSET 'latin2'", $connection);
  7. mysql_query("SET NAMES latin2");
  8. mysql_query("SET CHARACTER SET latin2");
  9. mysql_query("SET collation_connection = latin2_general_ci");
  10.  
  11. if (isset($_POST['all']))
  12. {
  13.  
  14. $wynik = mysql_query("SELECT * FROM manager ORDER BY `id` DESC ;")
  15. or die('Błąd zapytania');
  16.  
  17. if(mysql_num_rows($wynik) > 0) {
  18.  
  19. echo "<br>";
  20. echo "<table cellpadding='4' cellspacing='0' style='border:1px solid #aebecc'>";
  21. echo "<tr style='border:1px solid #aebecc'>";
  22. echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>ID</td>";
  23. echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>DATA</td>";
  24. echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>NAZWISKO</td>";
  25. echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>TELEFON</td>";
  26. echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>SPRZĘT</td>";
  27. echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>MODEL</td>";
  28. echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>PRZYJMOWAŁ</td>";
  29. echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>CZYNNOŚĆ</td>";
  30. echo "</tr>";
  31. while($r = mysql_fetch_object($wynik)) {
  32. echo "<tr style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>";
  33. echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->id."</td>";
  34. echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->data."</td>";
  35. echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->nazwisko."</td>";
  36. echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->telefon."</td>";
  37. echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->nazwa_sprzetu."</td>";
  38. echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->model."</td>";
  39. echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->przyjmuje."</td>";
  40. echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif; '>
  41. <a style='text-decoration:underline; color:#808d98;' href=\"menager.php?a=del&amp;id={$r->id}\">DEL</a>
  42. <a style='text-decoration:underline; color:#808d98;' href=\"menager.php?a=edit&amp;id={$r->id}\">EDIT</a>
  43. </td>";
  44. echo "</tr>";
  45. }
  46. echo "</table>";
  47. }
  48. }
  49.  
  50. $a = trim($_GET['a']);
  51. $id = trim($_GET['id']);
  52.  
  53. if(isset($_GET['id']) && ( $a == 'edit')) {
  54.  
  55. $wynik = mysql_query("SELECT * FROM manager WHERE id='$id'")
  56. or die('Błąd zapytania');
  57.  
  58. if(mysql_num_rows($wynik) > 0) {
  59.  
  60. $r = mysql_fetch_assoc($wynik);
  61.  
  62. echo '<form action="menager.php?a=save" method="post">
  63.  
  64. <input type="hidden" name="a" value="save" />
  65.  
  66. <input type="hidden" name="id" value="'.$id.'" />
  67.  
  68. nazwisko:<br />
  69.  
  70. <input type="text" name="nazwisko"
  71.  
  72. value="'.$r->nazwisko.'" /><br />
  73.  
  74. telefon<br />
  75.  
  76. <input type="text" name="telefon"
  77.  
  78. value="'.$r->telefon.'" /><br />
  79.  
  80. <input type="submit" value="popraw" />
  81.  
  82. </form>';
  83.  
  84. }
  85.  
  86. }
  87.  
  88. elseif($a == 'save') {
  89.  
  90. $id = $_POST['id'];
  91.  
  92. $nazwisko = trim($_POST['nazwisko']);
  93.  
  94. $telefon = trim($_POST['telefon']);
  95.  
  96. mysql_query("UPDATE manager SET nazwisko='$nazwisko', telefon='$telefon' WHERE id='$id'")
  97.  
  98. or die('Błąd zapytania');
  99.  
  100. echo 'Dane klienta zostały zaktualizowane poprawnie.';
  101.  
  102. }
  103.  
  104.  
  105. if(isset($_GET['id']) && ( $a == 'del'))
  106. {
  107. $wynik = @mysql_query("DELETE FROM manager WHERE `id`='".mysql_real_escape_string($_GET['id'])."'")
  108.  
  109. or die('Błąd zapytania: '.mysql_error());
  110.  
  111. echo 'Zlecenie zostało poprawnie usunięte.';
  112.  
  113. }
  114.  
  115.  
  116.  
  117. ?>
CuteOne
aż sprawdziłem i... działa normalnie. może zrób truncate tabeli dodaj kilka rekordów i sprawdź czy działa
MateuszRyaN
truncate też nic niestety nie dało...no ale to jest niemożliwe. Przecież dałem kod taki jak ja mam na stronie. Skoro u Ciebie działa u mnie też powinno...


EDIT:
Przperaszam wszystkich tongue.gif Już wiem o co chodziło, otóż w tym moim pliku menager.php mam dodawanie rekordów, usuwanie i edytowanie.
Do tego mam w formularzu osobne przyciski (takie główne do sterowania menagerem) PRZYJMIJ SPRZĘT // POKAŻ WSZYSTKIE // ARCHIWUM

dla przycisku przyjmij sprzęt mam zadeklarowane dodawanie rekordów,
dla przycisku pokaz wszystkie mam edycje i usuwanie.

A cały problem polegał na tym, że dla przycisku POKAŻ WSZYSTKIE miałem if (isset($_POST['all'])) ( i tak na prawdę to działało faktycznie dobrze...)

Ale do przycisku przyjmij sprzęt nie miałem if (isset($_POST['add'])) tongue.gif Po prostu brało mi z submit...od razu miałem połączenie z bazą i całą funkcje... dlatego przy wykonwywaniu edycji, dodawało mi automatycznie rekord smile.gif Teraz już wszystko ładnie śmiga. Przepraszam za głupote smile.gif Temat off.
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.