Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Edycja (zmiana) rekordu
Forum PHP.pl > Forum > Przedszkole
szokmen
Witam,
napisałem taki kod jaki widać poniżej i mam problem z edycja rekordu. Po prostu po kliknięciu zamień nic się nie dzieje mógłby ktoś spojrzeć. Kod edycji rekordu wziąłem z jakiegoś tutoriala w internecie ale teraz jakiś dziwny wydaje mi się ten kod.
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
  4. <title>Projekt bazy danych</title>
  5. <link rel="stylesheet" type="text/css" href="styl.css" />
  6. </head>
  7. <body>
  8. <div id="h2">
  9. <form action="formularz.php" method="post">
  10. <p align="right">
  11. <input type ="hidden" name="wybor" value="dodaj">
  12. <table>
  13. id klienta:<input type ="text" name="id"><br />
  14. imie:<input type ="text" name="imie"><br />
  15. nazwisko:<input type ="text" name="nazwisko"><br />
  16. nazwa firmy:<input type ="text" name="nazwa_firmy"><br />
  17. telefon:<input type ="text" name="telefon"><br />
  18. <input type ="submit" value="dodaj">
  19. </table>
  20. </p>
  21. </form>
  22. </div>
  23.  
  24.  
  25. <?php
  26. ini_set('display_errors','1');
  27.  
  28. mysql_connect("localhost", "xxxx", "yyyy") or die ("Nie można połączyć się z bazą");
  29. mysql_select_db ("firma") or die ("Nie można połączyć się z bazą firma");
  30. echo '<div id="h0">';
  31. echo '<form action= "formularz.php" method="get">';
  32. echo '<input type ="hidden" name="wybor" value="szukaj">';
  33. echo '<input type= "text" name="napis">';
  34. echo '<input type= "submit" value="Szukaj imie">';
  35. echo '</form>';
  36. echo '</div>';
  37.  
  38. echo '<div id="h3">';
  39. echo '<form action= "formularz.php" method="get">';
  40. echo '<input type ="hidden" name="wybor" value="DEL">';
  41. echo '<input type= "hidden" name="id">';
  42. echo '</form>';
  43. echo '</div>';
  44.  
  45. echo '<form action= "formularz.php" method="get">';
  46. echo '<input type ="hidden" name="wybor" value="edit">';
  47. echo '<input type= "hidden" name="id">';
  48. echo '</form>';
  49.  
  50. echo '<form action="formularz.php" method="get">';
  51. echo '<p align="right">';
  52. echo '<input type ="hidden" name="wybor" value="popraw">';
  53. echo '<table>';
  54. echo 'id klienta:<input type ="text" name="id"><br />';
  55. echo 'imie:<input type ="text" name="imie100""><br />';
  56. echo 'nazwisko:<input type ="text" name="nazwisko100"><br />';
  57. echo 'nazwa firmy:<input type ="text" name="nazwa_firmy100" ><br />';
  58. echo 'telefon:<input type ="text" name="telefon100"><br />';
  59. echo '<input type ="submit" value="zmień">';
  60. echo '</table>';
  61. echo '</p>';
  62. echo '</form>';
  63.  
  64.  
  65.  
  66.  
  67.  
  68. if(isset($_POST["wybor"])== 'dodaj')
  69. {
  70. $imie1=$_POST['imie'];
  71. $nazwisko1=$_POST['nazwisko'];
  72. $nazwa1=$_POST['nazwa_firmy'];
  73. $telefon1=$_POST['telefon'];
  74.  
  75.  
  76. if($imie1 and $nazwisko1 and $nazwa1 and $telefon1)
  77. {
  78.  
  79. $ins =mysql_query("insert into klienci set imie='$imie1', nazwisko='$nazwisko1', nazwa_firmy='$nazwa1',telefon='$telefon1'");
  80. if($ins) echo "Rekord został dodany poprawnie";
  81. else echo "Błąd nie udało się dodać nowego rekordu";
  82. }
  83. }
  84.  
  85. else if (isset($_GET["wybor"]) AND $_GET["wybor"]=='DEL')
  86. {
  87. //echo $_GET['id'];
  88. //echo $_GET['wybor'];
  89. $zapytanie3="DELETE from Klienci where id_klienta=$_GET[Id];";
  90. $del = mysql_query($zapytanie3);
  91. if($del)
  92. {
  93. echo '<h5>rekord usuniety</h5>';
  94.  
  95. }
  96. else
  97. {
  98. echo '<h5>blad</h5>';
  99. mysql_query($del) or die('BŁĄD:'.mysql_error());
  100. }
  101. }
  102. //EDYCJA
  103. else if (isset($_GET["wybor"]) AND $_GET["wybor"]=='edit')
  104. {
  105. if (isset($_GET["wybor"]) AND $_GET["wybor"]=='popraw')
  106. if($_GET[id] && $_GET[imie100] && $_GET[nazwisko100] && $_GET[nazwa_firmy100] && $_GET[telefon])
  107. {
  108. $zap100="update klienci set imie='$_GET[imie100]', nazwisko='$_GET[nazwisko100]', nazwa_firmy='$_GET[nazwa_firmy100]',telefon='$_GET[telefon100]' where id_klienta=$_GET[Id]";
  109. $wyk100=mysql_query($zap100);
  110. }
  111. }
  112.  
  113. else if (isset($_GET["napis"]))
  114. {
  115.  
  116. $zapytanie2="SELECT *from klienci where imie='$_GET[napis]'";
  117. $wyk2=mysql_query($zapytanie2);
  118. //SZUKANIE IMIENIA
  119. if ($_GET["wybor"]== 'szukaj')
  120. {
  121. if(mysql_num_rows($wyk2) > 0)
  122. {
  123.  
  124. echo ("<h1><b>Znaleziono</b></h1>");
  125. //echo '<div id="h6">';
  126. echo "<table cellpading=5 border=2>";
  127. echo "<tr>";
  128. echo "<td><b>Id_klienta</td></b>";
  129. echo "<td><b>Imie</td></b>";
  130. echo "<td><b>Nazwisko</td></b>";
  131. echo "<td><b>Nazwa firmy</td></b>";
  132. echo "<td><b>Telefon</td></b>";
  133. echo "</tr>\n";
  134. }
  135. else echo ("<h1><b>Nie ma</b></h1>");
  136.  
  137. echo '<br/>';
  138. while($rek=mysql_fetch_array($wyk2))
  139. {
  140. $id2 =$rek[0];
  141. $imie2=$rek[1];
  142. $nazwisko2=$rek[2];
  143. $nazwa_firmy2=$rek[3];
  144. $telefon2=$rek[4];
  145.  
  146. echo "<tr>";
  147. echo "<td><b>$id2</td></b>";
  148. echo "<td><b>$imie2</td></b>";
  149. echo "<td><b>$nazwisko2</td></b>";
  150. echo "<td><b>$nazwa_firmy2</td></b>";
  151. echo "<td><b>$telefon2</td></b>";
  152. echo "</tr>\n";
  153. //echo '</div>';
  154. }
  155. echo "</table>";
  156.  
  157. echo '<a href ="formularz.php"> Powrot do formularza</a>';
  158.  
  159. }
  160. }
  161.  
  162. $zapytanie1 = "SELECT *from klienci";
  163. $wyk1=mysql_query($zapytanie1);
  164.  
  165. //echo '<div id="h4">';
  166. echo "<table cellpading=5 border=2>";
  167. echo "<tr>";
  168. echo "<td><b>Id_klienta</td></b>";
  169. echo "<td><b>Imie</td></b>";
  170. echo "<td><b>Nazwisko</td></b>";
  171. echo "<td><b>Nazwa firmy</td></b>";
  172. echo "<td><b>Telefon</td></b>";
  173. echo "</tr>\n";
  174.  
  175. while($rekord=mysql_fetch_array($wyk1))
  176. {
  177. $id =$rekord[0];
  178. $imie=$rekord[1];
  179. $nazwisko=$rekord[2];
  180. $nazwa_firmy=$rekord[3];
  181. $telefon=$rekord[4];
  182.  
  183. echo "<tr>";
  184. echo "<td><b>$id</td></b>";
  185. echo "<td><b>$imie</td></b>";
  186. echo "<td><b>$nazwisko</td></b>";
  187. echo "<td><b>$nazwa_firmy</td></b>";
  188. echo "<td><b>$telefon</td></b>";
  189. echo "<td><a href = \"formularz.php?wybor=DEL&Id=$id\">kasuj</a></td>";
  190. echo "<td><a href = \"formularz.php?wybor=edit&Id=$id\">edytuj</a></td>";
  191. echo "</tr>\n";
  192. echo '</div>';
  193. }
  194. echo "</table>";
  195. //echo '</div>';
  196. ?>
  197.  
  198. </body>
  199. </html>
lobopol
A niby co się ma zmieniać jak po wybraniu edycji odpala się to:
  1. else if (isset($_GET["wybor"]) AND $_GET["wybor"]=='edit')
  2. {
  3. if (isset($_GET["wybor"]) AND $_GET["wybor"]=='popraw') //nawet za to nie przejdzie bo jak już tu jest sprawdzenie to $_GET["wybor"]=='edit' przecież
  4. if($_GET[id] && $_GET[imie100] && $_GET[nazwisko100] && $_GET[nazwa_firmy100] && $_GET[telefon])
  5. {
  6. $zap100="update klienci set imie='$_GET[imie100]', nazwisko='$_GET[nazwisko100]', nazwa_firmy='$_GET[nazwa_firmy100]',telefon='$_GET[telefon100]' where id_klienta=$_GET[Id]";
  7. $wyk100=mysql_query($zap100);
  8. }
  9. }

i zatrzymuję się zaraz na pierwszym ifie. Dalej idąc to twój skrypt jest strasznie nielogiczny, dużo rzeczy sobie utrudniasz, wiele razy sprawdzasz czy dana zmienna istnieje np.
  1. isset($_GET["wybor"]) AND $_GET["wybor"]=='edit'
wystarczy samo
  1. $_GET["wybor"]=='edit'
przecież jak ma ta wartość to musi już istnieć ta zmienna.
thek
Za bardzo zamieszałeś w warunkach i teraz to Ci się mści.
Zmienna wystarczy sprawdzić raz czy istnieje i potem sobie tylko w switchu sprawdzisz jaka to jest.
  1. if( isset( $jakas_zmienna ) ) {
  2. switch( $jakas_zmienna ) {
  3. case 'wartosc1':
  4. //rob coś
  5. break;
  6. case 'wartosc2':
  7. //rob coś
  8. break;
  9. default:
  10. //tak w ramach zabezpieczenia
  11. }
  12. }
Czy nie prościej? Przebuduj sobie te warunki bo się pogubisz z tymi if-elseif-elseif.
szokmen
To już nieco poprawiony kod. Jednak nadal nie działa mi aktualizacja rekordu :-( Prosiłbym o zerknięcie.
  1. echo '<div id="h0">';
  2. echo '<form action= "przebudowa.php" method="get">';
  3. echo '<input type ="hidden" name="wybor" value="szukaj">';
  4. echo '<input type= "text" name="napis">';
  5. echo '<input type= "submit" value="Szukaj imie">';
  6. echo '</form>';
  7. echo '</div>';
  8.  
  9. echo '<div id="h3">';
  10. echo '<form action= "przebudowa.php" method="get">';
  11. echo '<input type ="hidden" name="wybor" value="DEL">';
  12. echo '<input type= "hidden" name="id">';
  13. echo '</form>';
  14. echo '</div>';
  15.  
  16. echo '<form action= "przebudowa.php" method="get">';
  17. echo '<input type ="hidden" name="wybor" value="edit">';
  18. echo '<input type= "hidden" name="id">';
  19. echo '</form>';
  20.  
  21. echo '<form action= "przebudowa.php" method="get">';
  22. echo '<input type ="hidden" name="wybor" value="popraw">';
  23. echo '<input type= "hidden" name="id">';
  24. echo '</form>';
  25.  
  26.  
  27. if(isset($_POST["wybor"])== 'dodaj')
  28. {
  29. $imie1=$_POST['imie'];
  30. $nazwisko1=$_POST['nazwisko'];
  31. $nazwa1=$_POST['nazwa_firmy'];
  32. $telefon1=$_POST['telefon'];
  33.  
  34.  
  35. if($imie1 and $nazwisko1 and $nazwa1 and $telefon1)
  36. {
  37.  
  38. $ins =mysql_query("insert into klienci set 'imie='$imie1',nazwisko='$nazwisko1',nazwa_firmy='$nazwa1',telefon='$telefon1'");
  39. if($ins) echo "Rekord został dodany poprawnie";
  40. else echo "Błąd nie udało się dodać nowego rekordu";
  41. }
  42. }
  43.  
  44. else if (isset($_GET["wybor"]))
  45. {
  46. switch($_GET["wybor"])
  47. {
  48. case 'DEL':
  49. $zapytanie3="DELETE from Klienci where id_klienta=$_GET[Id];";
  50. $del = mysql_query($zapytanie3);
  51. if($del)
  52. {
  53. echo '<h5>rekord usuniety</h5>';
  54.  
  55. }
  56. else
  57. {
  58. echo '<h5>blad</h5>';
  59. mysql_query($del) or die('BŁĄD:'.mysql_error());
  60. } break;
  61.  
  62. case 'edit':
  63. $zap10="SELECT *from Klienci where id_klienta='$_GET[Id]';";
  64. $wyk10=mysql_query($zap10);
  65. $reko=mysql_fetch_array($wyk10);
  66.  
  67. $id10 =$reko[0];
  68. $imie10=$reko[1];
  69. $nazwisko10=$reko[2];
  70. $nazwa_firmy10=$reko[3];
  71. $telefon10=$reko[4];
  72.  
  73.  
  74. echo '<form action="przebudowa.php" method="get">';
  75. echo '<p align="right">';
  76. echo '<table>';
  77. echo 'id klienta:<input type ="text" name="id" value="'.$id10.'"><br />';
  78. echo 'imie:<input type ="text" name="imie20" value="'.$imie10.'"><br />';
  79. echo 'nazwisko:<input type ="text" name="nazwisko20" value="'.$nazwisko10.'"><br />';
  80. echo 'nazwa firmy:<input type ="text" name="nazwa_firmy20" value="'.$nazwa_firmy10.'"><br />';
  81. echo 'telefon:<input type ="text" name="telefon20" value="'.$telefon10.'"><br />';
  82. echo '<input type ="submit" value="zmień">';
  83. echo '</table>';
  84. echo '</p>';
  85. echo '</form>';
  86. break;
  87.  
  88. case 'popraw':
  89. $imie10= $_GET['imie20'];
  90. $nazwisko10= $_GET['nazwisko20'];
  91. $nazwa_firmy10= $_GET['nazwa_firmy20'];
  92. $telefon10=$_GET['telefon20'];
  93.  
  94. $zap11="UPDATE klienci SET imie='$imie10',nazwisko='$nazwisko10',nazwa_firmy='$nazwa_firmy10', telefon='$telefon10' where id_klienta=$_GET[Id]";
  95.  
  96. $wyk11=($zap11);
  97. break;
  98. }
  99.  
  100.  
  101.  
  102. }
  103.  

lobopol
No to teraz masz genialny formularz do szukania i kilka poukrywanych formularzy które nic nie robią (nawet ich wysłać nie możesz).
Dalej masz w kodzie mnóstwo głupot np.
  1. #
  2. if(isset($_POST["wybor"])== 'dodaj')

Jakikolwiek teraz będzie $_POST["wybor"] to if jest spełniony, ale ty jeszcze wysyłasz dane getem. Wybacz kod jest po prostu makabryczny. Przemyśl sobie jeszcze raz cały ten kod oddziel php od html i krok po kroku sobie to zbuduj.
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.