Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pole wyboru i UPDATE
Forum PHP.pl > Forum > Przedszkole
rafaln
Fragment kodu na początek:
  1. / ### formularze
  2.  
  3. $ftytul = htmlspecialchars(stripslashes($tytul));
  4. $fopis = htmlspecialchars(stripslashes($opis));
  5. $fminiatura = htmlspecialchars(stripslashes($miniatura));
  6. $fobrazek = htmlspecialchars(stripslashes($obrazek));
  7. $fkategoria = htmlspecialchars(stripslashes($kategoria));
  8.  
  9. $formularze = <<<KONIEC
  10.  
  11. <table border=0><tr><td valign=top>
  12. <form action="admin.php" method="get">
  13. <input type="hidden" name="popraw" value="$popraw">
  14. <table><tr>
  15.   <td valign=top>ID:</td>
  16.   <td><input type="text" name="id" value="$id"></td>
  17. </tr><tr>
  18.   <td valign=top>tytuł:</td>
  19.   <td><input type="text" name="tytul" value="$ftytul"></td>
  20. </tr><tr>
  21.   <td valign=top>opis:</td>
  22.   <td><textarea name="opis" value="$fopis" cols="17" rows="10">$fopis</textarea></td>
  23. </tr><tr>
  24.   <td valign=top><a href="folio/$fminiatura" target="_blank"><img src="arrow.png" border="0"></a> miniatura:</td>
  25.   <td><input type="text" name="miniatura" value="$fminiatura"></td>
  26. </tr><tr>
  27.   <td valign=top><a href="folio/$fobrazek" target="_blank"><img src="arrow.png" border="0"></a> obrazek:</td>
  28.   <td><input type="text" name="obrazek" value="$fobrazek"></td>
  29. </tr><tr>
  30.   <td valign=top>div:</td>
  31.   <td><input type="text" name="divgrid" value="$divgrid"></td>
  32. </tr><tr>
  33.   <td valign=top>kategoria:</td>
  34.   <td><select name="kategoria" value="$fkategoria">
  35. <option>strona</option>
  36. <option>logotyp</option>
  37. <option>rysunek</option>
  38. </select></td>
  39. </tr><tr>
  40. <td> </td>
  41. <td><input type="submit" value=" $guzik "></td>
  42. </tr></table>
  43. </form>
  44.  
  45. </td><td valign=top>
  46.  
  47. <form action="admin.php" method="get">
  48. <table bgcolor=#ccccff><tr>
  49.   <td valign=top>ID:</td>
  50.   <td><input type="text" name="popraw"></td>
  51. </tr><tr>
  52. <td> </td>
  53. <td><input type="submit" value=" uaktualnij "></td>
  54. </tr></table>
  55. </form>
  56.  
  57. <form action="admin.php" method="get">
  58. <table bgcolor=#ffcccc><tr>
  59.   <td valign=top>ID:</td>
  60.   <td><input type="text" name="skasuj"></td>
  61. </tr><tr>
  62. <td> </td>
  63. <td><input type="submit" value=" skasuj "></td>
  64. </tr></table>
  65. </form>
  66.  
  67. </td></tr></table>
  68. KONIEC;
  69.  
  70. echo $formularze;


Problem jest taki, że wybieram z pola wyboru odpowiednią kategorią która ląduje w bazie, w polu "kategoria". Wszystko ładnie się dodaje, nie mniej jednak gdy chcę edytować z poziomu admina te pole - to zawsze pokazuje mi pierwszą pozycję, czyli "strona", nie podświetla pola które zostało wpisane do bazy. Co mam zrobić żeby to zrobić ? Nie chcę z ręki wpisywać tego, a przy okazji nauczę się pola wyboru.

Nie pobiera jednak danych tutaj:
  1. <td valign=top>kategoria:</td>
  2. <td><select name="kategoria" value="$fkategoria">
  3. <option>strona</option>
  4. <option>logotyp</option>
  5. <option>rysunek</option>
  6. </select></td>
pedro84
Jak Ty to robisz? o.O

Option ma wartość i ją porównujesz z wartoscią z bazy, jeśli się zgadza = echo 'selected="seletec". Proste.
rafaln
Ok, pozwolę sobie wstawić cały kod zatem:

  1. <?php
  2. $nhost="localhost";
  3. $nbaza="test";
  4. $nuser="root";
  5. $npassword="pass";
  6.  
  7. $skasuj = trim($_GET["skasuj"]);
  8. $popraw = trim($_GET["popraw"]);
  9. $id = trim($_GET["id"]);
  10. $tytul = trim($_GET["tytul"]);
  11. $opis = trim($_GET["opis"]);
  12. $miniatura = trim($_GET["miniatura"]);
  13. $obrazek = trim($_GET["obrazek"]);
  14. $divgrid = trim($_GET["divgrid"]);
  15. $kategoria = trim($_GET["kategoria"]);
  16.  
  17. if ((($skasuj<>"")or($popraw<>""))and($id=="")) {
  18.  
  19. // ### pobranie rekordu z tabeli oraz kasowanie
  20.  
  21. if ($popraw<>"") $nr=$popraw; else $nr=$skasuj;
  22. $baza = mysql_connect($nhost, $nuser, $npassword);
  23. if ($baza) {
  24. $wynik = mysql_select_db($nbaza,$baza);
  25. if ($wynik) {
  26. $wynik = mysql_query("SELECT * FROM realizacja WHERE id=$nr", $baza);
  27. if (($wynik)and(mysql_num_rows($wynik)>0)) {
  28. if ($skasuj<>"") {
  29. mysql_query("DELETE FROM realizacja WHERE id=$skasuj", $baza);
  30. echo "<b>Rekord skasowany:</b>";
  31. }
  32. $pole=mysql_fetch_array($wynik);
  33. $id = $pole["id"];
  34. $tytul = $pole["tytul"];
  35. $opis = $pole["opis"];
  36. $miniatura = $pole["miniatura"];
  37. $obrazek = $pole["obrazek"];
  38. $divgrid = $pole["divgrid"];
  39. $kategoria = $pole["kategoria"];
  40. }
  41. }
  42. mysql_close($baza);
  43. }
  44. } else if ($id<>"") {
  45.  
  46. // ### dopisanie lub uaktualnienie tabeli
  47.  
  48. if (!eregi("^[0-9]+$",$id)) echo "<br><b>błąd w polu ID:</b>";
  49. else if (!eregi("^[^0-9]+$",$tytul)) echo "<br><b>błąd w polu tytuł</b>";
  50. else if (!eregi("^[^0-9]+$",$opis))
  51. echo "<br><b>błąd w polu opis</b>";
  52. else if (!eregi("^[^0-9]+$",$miniatura))
  53. echo "<br><b>błąd w polu miniatura</b>";
  54. else if (!eregi("^[^0-9]+$",$obrazek))
  55. echo "<br><b>błąd w polu obrazek</b>";
  56. else if (!eregi("^[^0-9]+$",$divgrid))
  57. echo "<br><b>błąd w polu divgrid</b>";
  58. else if (!eregi("^[^0-9]+$",$kategoria))
  59. echo "<br><b>błąd w polu divgrid</b>";
  60. else {
  61.  
  62. $baza = mysql_connect($nhost, $nuser, $npassword);
  63. if ($baza) {
  64. $wynik = mysql_select_db($nbaza,$baza);
  65. if ($wynik) {
  66. if ($popraw=="") {
  67. $wynik = mysql_query("
  68. INSERT INTO realizacja VALUES($id,'$tytul','$opis','$miniatura','$obrazek','$divgrid','$kategoria')
  69. ", $baza);
  70. if ($wynik) {
  71. echo "<br><b>Rekord został dodany</b>";
  72. $id=""; $tytul=""; $opis=""; $miniatura=""; $obrazek=""; $divgrid=""; $kategoria="";
  73. }
  74. } else {
  75. $wynik = mysql_query("
  76. UPDATE realizacja SET id=$id, tytul='$tytul', opis='$opis',
  77. miniatura='$miniatura', obrazek='$obrazek', divgrid='$divgrid', kategoria='$kategoria' where id=$popraw
  78. ", $baza);
  79. if ($wynik) {
  80. echo "<br><b>Rekord został uaktualniony</b>"; $popraw="";
  81. $id=""; $tytul=""; $opis=""; $miniatura=""; $obrazek=""; $divgrid=""; $kategoria="";
  82. }
  83. }
  84. }
  85. mysql_close($baza);
  86. }
  87.  
  88. }
  89. }
  90.  
  91. // ### napis na guziku formularza
  92.  
  93. if ($popraw<>"") $guzik="Uaktualnij";
  94. else if ($skasuj<>"") $guzik="Przywróć";
  95. else { $guzik="Dodaj"; };
  96.  
  97. // ### formularze
  98.  
  99. $ftytul = htmlspecialchars(stripslashes($tytul));
  100. $fopis = htmlspecialchars(stripslashes($opis));
  101. $fminiatura = htmlspecialchars(stripslashes($miniatura));
  102. $fobrazek = htmlspecialchars(stripslashes($obrazek));
  103. $fkategoria = htmlspecialchars(stripslashes($kategoria));
  104.  
  105. $formularze = <<<KONIEC
  106.  
  107. <table border=0><tr><td valign=top>
  108. <form action="admin.php" method="get">
  109. <input type="hidden" name="popraw" value="$popraw">
  110. <table><tr>
  111.   <td valign=top>ID:</td>
  112.   <td><input type="text" name="id" value="$id"></td>
  113. </tr><tr>
  114.   <td valign=top>tytuł:</td>
  115.   <td><input type="text" name="tytul" value="$ftytul"></td>
  116. </tr><tr>
  117.   <td valign=top>opis:</td>
  118.   <td><textarea name="opis" value="$fopis" cols="17" rows="10">$fopis</textarea></td>
  119. </tr><tr>
  120.   <td valign=top><a href="folio/$fminiatura" target="_blank"><img src="arrow.png" border="0"></a> miniatura:</td>
  121.   <td><input type="text" name="miniatura" value="$fminiatura"></td>
  122. </tr><tr>
  123.   <td valign=top><a href="folio/$fobrazek" target="_blank"><img src="arrow.png" border="0"></a> obrazek:</td>
  124.   <td><input type="text" name="obrazek" value="$fobrazek"></td>
  125. </tr><tr>
  126.   <td valign=top>div:</td>
  127.   <td><input type="text" name="divgrid" value="$divgrid"></td>
  128. </tr><tr>
  129.   <td valign=top>kategoria:</td>
  130.   <td><select name="kategoria" value="$fkategoria">
  131. <option>strona</option>
  132. <option>logotyp</option>
  133. <option>rysunek</option>
  134. </select></td>
  135. </tr><tr>
  136. <td>&nbsp;</td>
  137. <td><input type="submit" value=" $guzik "></td>
  138. </tr></table>
  139. </form>
  140.  
  141. </td><td valign=top>
  142.  
  143. <form action="admin.php" method="get">
  144. <table bgcolor=#ccccff><tr>
  145.   <td valign=top>ID:</td>
  146.   <td><input type="text" name="popraw"></td>
  147. </tr><tr>
  148. <td>&nbsp;</td>
  149. <td><input type="submit" value=" uaktualnij "></td>
  150. </tr></table>
  151. </form>
  152.  
  153. <form action="admin.php" method="get">
  154. <table bgcolor=#ffcccc><tr>
  155.   <td valign=top>ID:</td>
  156.   <td><input type="text" name="skasuj"></td>
  157. </tr><tr>
  158. <td>&nbsp;</td>
  159. <td><input type="submit" value=" skasuj "></td>
  160. </tr></table>
  161. </form>
  162.  
  163. </td></tr></table>
  164. KONIEC;
  165.  
  166. echo $formularze;
  167.  
  168. // ### pomocniczy fragment, wypisuje dane z bazy na ekran
  169.  
  170. echo "<hr>";
  171. $baza = mysql_connect($nhost, $nuser, $npassword);
  172. mysql_select_db($nbaza,$baza);
  173. $wynik = mysql_query("SELECT * FROM realizacja",$baza);
  174. mysql_close($baza);
  175. $wierszy = mysql_num_rows($wynik);
  176. $pol = mysql_num_fields($wynik);
  177. echo "<table cellpadding=0 cellspacing=10><tr>
  178. <td><b>id</b></td><td><b>tytul</b></td><td><b>opis</b></td><td><b>miniatura</b></td>
  179. <td><b>obrazek</b></td><td><b>div</b></td><td><b>kategoria</b></td></tr>";
  180. while($wiersz = mysql_fetch_array($wynik))
  181. {
  182. echo "<tr>";
  183. echo "<td>".$wiersz['id']."</td>";
  184. echo "<td>".$wiersz['tytul']."</td>";
  185. echo "<td>".$wiersz['opis']."</td>";
  186. echo "<td><a href=\"folio/{$wiersz['miniatura']}\" target=\"_blank\">".$wiersz['miniatura']."</a></td>";
  187. echo "<td><a href=\"folio/{$wiersz['obrazek']}\" target=\"_blank\">".$wiersz['obrazek']."</a></td>";
  188. echo "<td>".$wiersz['divgrid']."</td>";
  189. echo "<td>".$wiersz['kategoria']."</td>";
  190. echo "</tr>";
  191. }
  192. echo "</table>";
  193. ?>
pedro84
Jak wyżej... A konkretnie linie 130-134 dodajesz tam if porównując wartość option z wartością z bazy.
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.