Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Nie zapisuje zmian z pola select
Forum PHP.pl > Forum > Przedszkole
rapsod
Witam to mój pierwszy post więc jeśli coś nie tak opiszę to proszę o wyrozumiałość.

Jestem samoukiem w PHP. Piszę sobie taki panel dla klientów którym będę projektował strony abym się nie pogubił.
Problem polega na tym że cały skrypt mi działa . Dopisywanie nowych klientów oraz edycja i wyszukiwanie.
Natomiast przy edycji klienta i zmianie opcji serwera z pola "select" nie zmienia mi danych w bazie danych.

Tobędzie ten kawałek kodu gdzie jest wybór serwera.

Proszę o analizę kodu i podpowiedź gdzie tkwi błąd.


  1. <HTML>
  2. <HEAD>
  3. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
  4. <TITLE>E-panel</TITLE>
  5. <link href="tabs.css" rel="stylesheet" type="text/css">
  6. <link href="main.css" rel="stylesheet" type="text/css">
  7. </HEAD>
  8. <BODY>
  9.  
  10. <? // Aplikacja daje nam możliwość odczytu, kasowania, dodawania
  11. // i poprawy danych w bazie.
  12.  
  13. mysql_connect ("localhost", "root", "") or
  14. die ("Nie można połączyć się z MySQL");
  15. mysql_select_db ("epanel") or
  16. die ("Nie można połączyć się z bazą E-Panel");
  17. mysql_query("SET NAMES utf8");
  18. mysql_query("SET CHARACTER_SET utf8_unicode_ci");
  19. if ($co == 'dodaj') { // dodawanie rekordu
  20. if ($data && $imie && $nazwisko && $adres && $nip && $pesel && $serwer && $data_od && $data_do && $status && $cena && $domena && $uwagi) {
  21. $query = "INSERT INTO epanel (nr, data, imie, nazwisko, adres, nip, pesel, serwer, data_od, data_do, status, cena, domena, ";
  22. $query .= "uwagi) VALUES ('', '$data', '$imie', '$nazwisko', '$adres', '$nip', '$pesel', '$serwer', '$data_od', '$data_do', '$status', '$cena', '$domena', '$uwagi');";
  23. $wynik = mysql_query ($query);
  24. }
  25. } elseif ($co == 'popraw') { // poprawianie rekordu
  26. if ($data && $imie && $nazwisko && $adres && $nip && $pesel && $serwer && $data_od && $data_do && $status && $cena && $domena && $uwagi) {
  27. $query = "UPDATE epanel SET data='$data', imie=";
  28. $query .= "'$imie', nazwisko='$nazwisko', adres='$adres', nip='$nip', pesel='$pesel', serwer='$serwer', data_od='$data_od', data_do='$data_do', status='$status', cena='$cena', domena='$domena', uwagi='$uwagi' WHERE nr='$id';";
  29. $wynik = mysql_query ($query);
  30. }
  31. } elseif ($co == 'edytuj') { // przygotowanie do poprawek
  32. $query = "SELECT * FROM epanel where nr='$id';";
  33. $wynik = mysql_query ($query);
  34. $rekord = mysql_fetch_array ($wynik);
  35. $id = $rekord[0]; $data = $rekord[1]; $imie = $rekord[2]; $nazwisko = $rekord[3]; $adres = $rekord[4]; $nip = $rekord[5]; $pesel = $rekord[6];
  36. $serwer = $rekord[7]; $data_od = $rekord[8]; $data_do = $rekord[9]; $status = $rekord[10]; $cena = $rekord[11]; $domena = $rekord[12]; $uwagi = $rekord[13];
  37. print '<FORM METHOD="POST">
  38. <table border="0" width="100%" id="table1" cellpadding="0">
  39. <tr>
  40. <td colspan="2">
  41. <INPUT TYPE="hidden" NAME="co" VALUE="popraw">
  42. <INPUT TYPE="hidden" NAME="id" VALUE="'.$id.'">
  43. </td>
  44. </tr>
  45. <tr>
  46. <td width="171">Data : </td>
  47. <td>
  48.  
  49.  
  50. <INPUT TYPE="text"
  51. NAME="data" VALUE="'.$data.'" size="20"></td>
  52. </tr>
  53. <tr>
  54. <td width="171">Imię : </td>
  55. <td><INPUT TYPE="text"
  56. NAME="imie" VALUE="'.$imie.'" size="20"></td>
  57. </tr>
  58. <tr>
  59. <td width="171">Nazwisko : </td>
  60. <td>
  61. <INPUT TYPE="text" NAME="nazwisko"
  62. VALUE="'.$nazwisko.'" size="20"></td>
  63. </tr>
  64. <tr>
  65. <td width="171">Adres : </td>
  66. <td><INPUT TYPE="text"
  67. NAME="adres" VALUE="'.$adres.'" size="20"></td>
  68. </tr>
  69. <tr>
  70. <td width="171">Nip : </td>
  71. <td><INPUT TYPE="text"
  72. NAME="nip" VALUE="'.$nip.'" size="20"></td>
  73. </tr>
  74. <tr>
  75. <td width="171">Pesel : </td>
  76. <td><INPUT TYPE="text"
  77. NAME="pesel" VALUE="'.$pesel.'" size="20"></td>
  78. </tr>
  79. <tr>
  80. <td width="171">Serwer : </td>
  81. <td>
  82. <select size="1" name="serwer">
  83. <option>Wybierz Serwer</option>
  84. <option value="'.$serwer.'">Serwer Start</option>
  85. <option value="'.$serwer.'">Serwer Clasic</option>
  86. <option value="'.$serwer.'">Serwer Biznes</option>
  87. </select></td>
  88. </tr>
  89. <tr>
  90. <td width="171">Data od : </td>
  91. <td>
  92. <INPUT TYPE="text"
  93. NAME="data_od" VALUE="'.$data_od.'" size="20"></td>
  94. </tr>
  95. <tr>
  96. <td width="171">Data do : </td>
  97. <td>
  98. <INPUT TYPE="text"
  99. NAME="data_do" VALUE="'.$data_do.'" size="20"></td>
  100. </tr>
  101. <tr>
  102. <td width="171">Status : </td>
  103. <td>
  104. <INPUT TYPE="text"
  105. NAME="status" VALUE="'.$status.'" size="20"></td>
  106. </tr>
  107. <tr>
  108. <td width="171">Cena : </td>
  109. <td><INPUT TYPE="text"
  110. NAME="cena" VALUE="'.$cena.'" size="20"></td>
  111. </tr>
  112. <tr>
  113. <td width="171">Domena : </td>
  114. <td>
  115. <INPUT TYPE="text"
  116. NAME="domena" VALUE="'.$domena.'" size="20"></td>
  117. </tr>
  118. <tr>
  119. <td width="171">Uwagi : </td>
  120. <td><INPUT TYPE="text"
  121. NAME="uwagi" VALUE="'.$uwagi.'" size="20"></td>
  122. </tr>
  123. <tr>
  124. <td width="171"> </td>
  125. <td>
  126. <INPUT TYPE="submit" VALUE="Popraw"></td>
  127. </tr>
  128. </table>
  129. </FORM>';
  130. } elseif ($co == 'skasuj') { // kasowanie
  131. $wynik = mysql_query
  132. ("DELETE FROM epanel WHERE nr = '$id';");
  133. }
  134.  
  135. $wynik = mysql_query ("SELECT * FROM epanel ORDER BY nr;");
  136.  
  137. print '<FORM METHOD="POST"><HR>Szukaj: <INPUT TYPE="text" NAME="fraza" VALUE='.$fraza.'>';
  138. print '<INPUT TYPE="submit" VALUE="Szukaj"> <A HREF="serwis2.php">Wszystkie</A><HR></FORM>';
  139.  
  140. print "<TABLE CELLPADDING=5 BORDER=1>
  141. <TR><TD>
  142. <b>Data </b>
  143. </TD><TD>
  144. <b>Imię </b>
  145. </TD><TD>
  146. <b>Nazwisko </b>
  147. </TD><TD>
  148. <b>Adres</b></TD><TD>
  149. <b>Nip</b></TD><TD>
  150. <b>Pesel</b></TD><TD>
  151. <b>Serwer</b></TD><TD>
  152. <b>Data Od</b></TD><TD>
  153. <b>Data do</b></TD><TD>
  154. <b>Status</b></TD><TD>
  155. <b>Cena</b></TD><TD>
  156. <b>Domena</b></TD><TD>
  157. <b>Uwagi</b></TD></TR>\n";
  158.  
  159. while ($rekord = mysql_fetch_array ($wynik)) {
  160. $id = $rekord[0];
  161. $data = $rekord[1];
  162. $imie = $rekord[2];
  163. $nazwisko = $rekord[3];
  164. $adres = $rekord[4];
  165. $nip = $rekord[5];
  166. $pesel = $rekord[6];
  167. $serwer = $rekord[7];
  168. $data_od = $rekord[8];
  169. $data_do = $rekord[9];
  170. $status = $rekord[10];
  171. $cena = $rekord[11];
  172. $domena = $rekord[12];
  173. $uwagi = $rekord[13];
  174.  
  175. if (!($fraza) || (stristr ($imie.$nazwisko, $fraza))) {
  176. <TR>
  177. <TD>$data</TD>
  178. <TD>$imie</TD>
  179. <TD>$nazwisko</TD>
  180. <TD>$adres</TD>
  181. <TD>$nip</TD>
  182. <TD>$pesel</TD>
  183. <TD>$serwer</TD>
  184. <TD>$data_od</TD>
  185. <TD>$data_do</TD>
  186. <TD>$status</TD>
  187. <TD>$cena</TD>
  188. <TD><a href=http://$domena>$domena</a></TD>
  189. <TD>$uwagi</TD>
  190. <TD>";
  191. print "<A HREF=\"serwis2.php?co=skasuj&id=$id\">skasuj</A></TD><TD>";
  192. print "<A HREF=\"serwis2.php?co=edytuj&id=$id\">edytuj</A></TD></TR>\n";
  193. }
  194. }
  195. print "</TABLE>";
  196. print '<FORM METHOD="POST">
  197. <table border="0" width="100%" id="table1" cellpadding="0">
  198. <tr>
  199. <td colspan="2"><INPUT TYPE="hidden" NAME="co" VALUE="dodaj"></td>
  200. </tr>
  201. <tr>
  202. <td width="171">Data : </td>
  203. <td><INPUT TYPE="text"
  204. NAME="data" size="20"></td>
  205. </tr>
  206. <tr>
  207. <td width="171">Imię : </td>
  208. <td><INPUT TYPE="text"
  209. NAME="imie" size="20"></td>
  210. </tr>
  211. <tr>
  212. <td width="171">Nazwisko  : </td>
  213. <td><INPUT TYPE="text"
  214. NAME="nazwisko" size="20"></td>
  215. </tr>
  216. <tr>
  217. <td width="171">Adres : </td>
  218. <td><INPUT TYPE="text"
  219. NAME="adres" size="20"></td>
  220. </tr>
  221. <tr>
  222. <td width="171">Nip : </td>
  223. <td><INPUT TYPE="text"
  224. NAME="nip" size="20"></td>
  225. </tr>
  226. <tr>
  227. <td width="171">Pesel : </td>
  228. <td><INPUT TYPE="text"
  229. NAME="pesel" size="20"></td>
  230. </tr>
  231. <tr>
  232. <td width="171">Serwer : </td>
  233. <td><select size="1" name="serwer">
  234. <option>Wybierz Serwer</option>
  235. <option value="Serwer Start">Serwer Start</option>
  236. <option value="Serwer Clasic">Serwer Clasic</option>
  237. <option value="Serwer Biznes">Serwer Biznes</option>
  238. </select></td>
  239. </tr>
  240. <tr>
  241. <td width="171">Data od : </td>
  242. <td><INPUT TYPE="text"
  243. NAME="data_od" size="20"></td>
  244. </tr>
  245. <tr>
  246. <td width="171">Data do : </td>
  247. <td><INPUT TYPE="text"
  248. NAME="data_do" size="20"></td>
  249. </tr>
  250. <tr>
  251. <td width="171">Status : </td>
  252. <td><INPUT TYPE="text"
  253. NAME="status" size="20"></td>
  254. </tr>
  255. <tr>
  256. <td width="171">Cena : </td>
  257. <td><INPUT TYPE="text"
  258. NAME="cena" size="20"></td>
  259. </tr>
  260. <tr>
  261. <td width="171">Domena : </td>
  262. <td><INPUT TYPE="text"
  263. NAME="domena" size="20"></td>
  264. </tr>
  265. <tr>
  266. <td width="171">Uwagi : </td>
  267. <td><INPUT TYPE="text"
  268. NAME="uwagi" size="20"></td>
  269. </tr>
  270. <tr>
  271. <td width="171"> </td>
  272. <td><INPUT TYPE="submit" VALUE="Dodaj"></td>
  273. </tr>
  274. </table>
  275.  
  276. </FORM>';
  277. ?>
  278.  
  279. </BODY>
  280. </HTML>
  281.  


Z góry dziękuję i pozdrawiam.
rytek
Po:
Kod
$serwer = $rekord[7]; $data_od = $rekord[8]; $data_do = $rekord[9]; $status = $rekord[10]; $cena = $rekord[11]; $domena = $rekord[12]; $uwagi = $rekord[13];

Dodaj:
Kod
$sel1 = ($serwer == "Serwer Start" ? " selected" : "");
$sel2 = ($serwer == "Serwer Clasic" ? " selected" : "");
$sel3 = ($serwer == "Serwer Biznes" ? " selected" : "");


A to:
Kod
<select size="1" name="serwer">
    <option>Wybierz Serwer</option>
    <option value="'.$serwer.'">Serwer Start</option>
    <option value="'.$serwer.'">Serwer Clasic</option>
    <option value="'.$serwer.'">Serwer Biznes</option>
</select>

Zamień na:
Kod
<select size="1" name="serwer">
        <option>Wybierz Serwer</option>
    <option value="Serwer Start" '.$sel1.'>Serwer Start</option>
    <option value="Serwer Clasic" '.$sel2.'>Serwer Clasic</option>
    <option value="Serwer Biznes" '.$sel3.'>Serwer Biznes</option>
</select>


Bo wartość pola musi być taka sama. Skrypt interesuje tylko, który jest wybrany, czyli, która opcja ma atrybut selected.

Sprawdź, powinno działać, jeśli to jedyny błąd.

BTW. Dlaczego używasz print, zamiast echo? Nie widzę, żebyś formatował wyniki, a print jest wolniejsze od echo.
Pozdro, rytek.
rapsod
Bardzo dziękuję za odpowiedź.

Oczywiście pomogło i wszystko należycie działa.
Teraz rozumiem.

Tak jak napisałem dopiero od roku grzebię w PHP i sam się uczę wiec w zasadzie na własnych błędach.
Nie wiedziałem że "echo" działa szybciej. Dzięki sprawdzę.

I jeszcze raz pozdrawiam
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.