Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Analiza kodu - gdzieś błąd
Forum PHP.pl > Forum > Przedszkole
kvachu
Witam!
Już kompletnie nie mam pojęcia co może być nie tak w poniższym kodzie. Siedzę nad tym chyba z 5 godzin i już brak mi pomysłów. Wszystko przebiega jakby normalnie do czasu UPDATE w "mysql_query("UPDATE wars SET ..." i nic się nie edytuje... Wprawne oko profesjonalisty powinno wychwycić co jest nie tak =(.
"error_reporting(E_ALL);" mówi tylko o nie zdefiniowanych zmiennych "$zapis" i "$przejdz_do_edycji", które są w liniach 5 i 17, a one są definiowane prawie na samym dole.
A oto ten feralny kod:
  1. <?php
  2. // error_reporting(E_ALL);
  3. if(isset($_COOKIE['ID_my_site'])) {
  4. include("admincw.php");
  5. if($zapis == "1") {
  6. if(!$tag) {
  7. echo 'Nie wpisano przeciwnika!<br>';
  8. $error = "1";
  9. echo $gracz1."<BR>".$gracz2."<BR>".$gracz3."<BR>".$gracz4;
  10. }
  11. if($error != "1") {
  12. mysql_query("UPDATE wars SET tag='$tag', dzien='$dzien', miesiac='$miesiac', rok='$rok', tryb='$tryb', typ='$typ', gracz1='$gracz1', gracz2='$gracz2', gracz3='$gracz3', gracz4='$gracz4', flaga='$flaga', runda1='$runda1', r1my='$r1my', r1oni='$r1oni', runda2='$runda2', r2my='$r2my', r2oni='$r2oni', runda3='$runda3', r3my='$r3my', r3oni='$r3oni' WHERE id='$id'");
  13.  
  14. header("Location: index.php?link=cws_all");
  15. }
  16. } else {
  17. if($przejdz_do_edycji) {
  18. $result = mysql_query("SELECT * FROM wars WHERE id='$id'");
  19. while($rekord = mysql_fetch_array($result)) {
  20.  
  21. $tag = $rekord['tag'];
  22. $dzien = $rekord['dzien'];
  23. $miesiac = $rekord['miesiac'];
  24. $rok = $rekord['rok'];
  25. $tryb = $rekord['tryb'];
  26. $typ = $rekord['typ'];
  27. $gracz1 = $rekord['gracz1'];
  28. $gracz2 = $rekord['gracz2'];
  29. $gracz3 = $rekord['gracz3'];
  30. $gracz4 = $rekord['gracz4'];
  31. $flaga = $rekord['flaga'];
  32. $runda1 = $rekord['runda1'];
  33. $r1my = $rekord['r1my'];
  34. $r1oni = $rekord['r1oni'];
  35. $runda2 = $rekord['runda2'];
  36. $r2my = $rekord['r2my'];
  37. $r2oni = $rekord['r2oni'];
  38. $runda3 = $rekord['runda3'];
  39. $r3my = $rekord['r3my'];
  40. $r3oni = $rekord['r3oni'];
  41.  
  42. // FORM ACTION
  43. echo '<form action="index.php?link=edytujcw" method="post">';
  44. echo '<br><CENTER><table cellspacing="1" cellpadding="1" width="508">';
  45. echo '<tr><td colspan="2" class="addcw" align=center><BR>Edytowanie klanówki.<BR><BR></td></tr>';
  46. echo '<tr><td class="addcw" width="100">Klan:</td><td class="addcw">';
  47.  
  48. // TAG
  49. echo '<input name="tag" value="'.$tag.'"></td></tr>';
  50. echo '<tr><td class="addcw">Kraj:</td><td class="addcw">';
  51.  
  52. // FLAGA
  53. echo '<input name="flaga" value="'.$flaga.'" size="10"></td></tr>';
  54. echo '<tr><td class="addcw">Grany dnia:</td><td class="addcw">';
  55.  
  56. // DZIEN
  57. echo '<select name="dzien" size="1">';
  58. $i = 1;
  59. while($i <= 31) {
  60. if($i == $dzien) {
  61. if($i <=9)
  62. echo "<option value=\"0$i\" selected>0$i</option>";
  63. else echo "<option value=\"$i\" selected>$i</option>";
  64. } else {
  65. if($i <=9) echo "<option value=\"0$i\">0$i</option>";
  66. else echo "<option value=\"$i\">$i</option>";
  67. }
  68. $i++;
  69. }
  70.  
  71. // MIESIAC
  72. echo '</select>.';
  73. echo '<select name="miesiac" size="1">';
  74. $i = 1;
  75. while($i <= 12) {
  76. if($i==$miesiac) {
  77. if($i <=9) echo "<option value=\"0$i\" selected>0$i</option>";
  78. else echo "<option value=\"$i\" selected>$i</option>";
  79. } else {
  80. if($i <=9) echo "<option value=\"0$i\">0$i</option>";
  81. else echo "<option value=\"$i\">$i</option>";
  82. }
  83. $i++;
  84. }
  85.  
  86. // ROK
  87. echo '</select>.<input name="rok" maxlength="4" size="5" value="'.$rok.'"></td></tr>';
  88.  
  89. // TYP
  90. echo '<tr><td class="addcw">Typ meczu:</td><td class="addcw"><input name="typ" value="'.$typ.'" size="10"></td></tr>';
  91.  
  92. // RUNDA 1
  93. echo '<tr><td class="addcw">Runda 1:</td><td class="addcw">';
  94. echo '<input name="runda1" value="'.$runda1.'" size="10">';
  95. echo '<input name="r1my" value="'.$r1my.'" size="1">';
  96. echo '<input name="r1oni" value="'.$r1oni.'" size="1"></td></tr>';
  97.  
  98. // RUNDA 2
  99. echo '<tr><td class="addcw">Runda 2:</td><td class="addcw">';
  100. echo '<input name="runda2" value="'.$runda2.'" size="10">';
  101. echo '<input name="r2my" value="'.$r2my.'" size="1">';
  102. echo '<input name="r2oni" value="'.$r2oni.'" size="1"></td></tr>';
  103.  
  104. // RUNDA 3
  105. echo '<tr><td class="addcw">Runda 3:</td><td class="addcw">';
  106. echo '<input name="runda3" value="'.$runda3.'" size="10">';
  107. echo '<input name="r3my" value="'.$r3my.'" size="1">';
  108. echo '<input name="r3oni" value="'.$r3oni.'" size="1"></td></tr>';
  109.  
  110. // SKLAD
  111. echo '<tr><td class="addcw">Skład:</td><td colspan="2" class="addcw">';
  112.  
  113. // GRACZ 1
  114. echo '<select name="gracz1"><option></option>';
  115. $result2 = mysql_query("SELECT username FROM users ORDER BY username ASC");
  116. while($users = mysql_fetch_array($result2)) {
  117. if($rekord['gracz1'] === $users['username']) {
  118. echo '<option value="'.$users['username'].'" selected>'.$users['username'].'</option>';
  119. } else {
  120. echo '<option value="'.$users['username'].'">'.$users['username'].'';
  121. }
  122. }
  123. echo '</select>&nbsp;&nbsp;';
  124.  
  125. // GRACZ 2
  126. echo '<select name="gracz2"><option></option>';
  127. $result2 = mysql_query("SELECT username FROM users ORDER BY username ASC");
  128. while($users = mysql_fetch_array($result2)) {
  129. if($rekord['gracz2'] === $users['username']) {
  130. echo '<option value="'.$users['username'].'" selected>'.$users['username'].'</option>';
  131. } else {
  132. echo "<option value=\"".$users['username']."\">".$users['username'];
  133. }
  134. }
  135. echo '</select>&nbsp;&nbsp;';
  136.  
  137. // GRACZ 3
  138. echo '<select name="gracz3"><option></option>';
  139. $result2 = mysql_query("SELECT username FROM users ORDER BY username ASC");
  140. while($users = mysql_fetch_array($result2)) {
  141. if($rekord['gracz3'] === $users['username']) {
  142. echo '<option value="'.$users['username'].'" selected>'.$users['username'].'</option>';
  143. } else {
  144. echo '<option value="'.$users['username'].'">'.$users['username'].'';
  145. }
  146. }
  147. echo '</select>&nbsp;&nbsp;';
  148.  
  149. // GRACZ 4
  150. echo '<select name="gracz4"><option></option>';
  151. $result2 = mysql_query("SELECT username FROM users ORDER BY username ASC");
  152. while($users = mysql_fetch_array($result2)) {
  153. if($rekord['gracz4'] === $users['username']) {
  154. echo '<option value="'.$users['username'].'" selected>'.$users['username'].'</option>';
  155. } else {
  156. echo '<option value="'.$users['username'].'">'.$users['username'].'';
  157. }
  158. }
  159. echo '</select>&nbsp;&nbsp;';
  160.  
  161. echo '</td></tr>';
  162. echo '<tr><td colspan="2" valign="bottom" class="addcw" align="center"><BR>';
  163.  
  164. // SUBMIT
  165. echo '<input type="hidden" value="edit" name="admin">';
  166. echo '<input type="hidden" value="1" name="zapis">';
  167. echo '<input type="hidden" value="$id" name="id">';
  168. echo '<input type="submit" value="Zapisz zmiany" style="color: #000000;">';
  169. echo '<BR><BR></td></tr></table></CENTER>';
  170. echo '</form>';
  171. }
  172. } else {
  173.  
  174. // WYBOR KLANOWKI
  175. echo '<BR><CENTER><form action="index.php?link=edytujcw" method=post>';
  176. echo '<table width="508" cellspacing="0" cellpadding="0">';
  177. echo '<tr><td colspan="2" class="addcw" width="508" align="center"><BR>Edytowanie klanówki.<BR><BR></td></tr>';
  178. echo '<tr><td></td><td class="addcw" width="508" align="center">';
  179.  
  180. // KLANOWKI
  181. echo '<select name="id" size="20">';
  182. $result = mysql_query("SELECT * FROM wars ORDER BY rok DESC, miesiac DESC, dzien DESC, id DESC");
  183. while($rekord = mysql_fetch_array($result)) {
  184. echo "<option value=\"".$rekord['id']."\"> klanowka&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;>>>".$rekord['tag']."<<<&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ".$rekord['dzien'].".".$rekord['miesiac'].".".$rekord['rok']." -- ".$rekord['typ'] . $rekord['runda1']."-".$rekord['runda2']."-".$rekord['runda3'];
  185. }
  186. echo '</select></td>';
  187. echo '</tr><tr><td colspan="2" class="addcw" width="508" align="center"><BR>';
  188. echo '<input type="hidden" value="1" name="przejdz_do_edycji">';
  189. echo '<input type="submit" value="Edytuj" style="color:#0600hg;"><BR><BR>';
  190. echo '</td></tr></table>';
  191. echo '</form></CENTER>';
  192. }
  193. }
  194. } else {
  195. echo '<BR><BR>dZo byź zjaD????????';
  196. }
  197. ?>


Z góry dzięki za pomoc =(
Meares
Sprawdź $tag i inne za pomocą var_dumpa.
kvachu
Zrobiłem, choć do końca nie wiem o co ci chodzi, bo ja jestem początkujący tak jakby. $rekord['gracz1'] zwraca NULL, a $gracz1 zwraca coś jakby STRING(9) "Janek".
Mi to za bardzo nic nie mówi.
Zrobiłem dwa var_dump. Jeden w linii 182 i tam zwracane są wartości z bazy, a var_dump z linii 10 zwraca już zedytowane wartości jak ma to być. Jakby problem był przy:
  1. mysql_query("UPDATE wars SET tag='$tag', dzien='$dzien', miesiac='$miesiac', rok='$rok', tryb='$tryb', typ='$typ', gracz1='$gracz1', gracz2='$gracz2', gracz3='$gracz3', gracz4='$gracz4', flaga='$flaga', runda1='$runda1', r1my='$r1my', r1oni='$r1oni', runda2='$runda2', r2my='$r2my', r2oni='$r2oni', runda3='$runda3', r3my='$r3my', r3oni='$r3oni' WHERE id='$id'");


Tylko, że ja tu nie widzę nic złego...
darko
Cytat
"error_reporting(E_ALL);" mówi tylko o nie zdefiniowanych zmiennych "$zapis" i "$przejdz_do_edycji", które są w liniach 5 i 17, a one są definiowane prawie na samym dole.


No właśnie, pokaż, w którym miejscu jest "na samym dole", bo nie widzę, poza tym jeśli odwołujesz się do jakiejś zmiennej w kodzie, to wypadałoby najpierw ją zadeklarować przed użyciem.
cojack
deklaracja != definicji
definicja == deklaracji

nauczcie się tego. Jak możesz zadeklarować coś co nie było jeszcze zdefiniowane?
kvachu
Cytat(darko @ 22.11.2009, 23:47:42 ) *
No właśnie, pokaż, w którym miejscu jest "na samym dole", bo nie widzę, poza tym jeśli odwołujesz się do jakiejś zmiennej w kodzie, to wypadałoby najpierw ją zadeklarować przed użyciem.


$zapis jest w linii 189, natomiast $przejdz_do_edycji w linii 211. No chyba, że to nie jest definicja. Nie zawracam sobie za bardzo tym głowy ponieważ w starszej wersji tego skryptu było tak samo, a jedyne co się zmieniło to nazwa tablicy i przy graczach były inputy zamiast selecty i skrypt śmigał elegancko, edytowało aż miło. Ale, że nie interesuje mnie zwykły input, a select to przerabiam...
darko
Cytat
$zapis jest w linii 189,


to chyba tylko u Ciebie, bo tutaj jest echo '<input type="submit" value="Edytuj" style="color:#0600hg;"><BR><BR>';

Cytat
natomiast $przejdz_do_edycji w linii 211.


jw. z tym, że z tego, co podałeś kod kończy się na linii 197


Cytat
deklaracja != definicji
definicja == deklaracji

nauczcie się tego. Jak możesz zadeklarować coś co nie było jeszcze zdefiniowane?


purysta winksmiley.jpg ale ma rację
(tak na marginesie tak: $zmienna; smile.gif )

Cytat
No chyba, że to nie jest definicja.


W językach programowania o słabym typowaniu (jak php) nie ma potrzeby deklarowania zmiennych, wystarczy definicja $zmienna = "wartość"; będąca równocześnie deklaracją. Oddaję, co powinienem. Jednakże przed użyciem jakiejkolwiek zmiennej należy ją zdefiniować, aby można było odwołać się do jej wartości.
kvachu
Kolejno linie 166 i 188. Wcześniej podawałem linie z EditPlus, w którym pracuję, a kod tutaj widocznie wciął kilka enterów.

Wiele z tego co tutaj piszecie słyszę pierwszy raz. A, że potrzebuję trochę pomocy to postuję tutaj, ponieważ jest to PRZEDSZKOLE:

"Tematyka i zasady panujące na forum Przedszkole
Forum przeznaczone jest dla osób zaczynających "zabawę" w tematyce WWW."


To właśnie ja, dopiero zaczynam.
Spostrzegłem, że wielu z was nawet nie analizuje tutaj kodów, a próbuje udzielać pomocy okrężną drogą(+1?).
Anyway, dzięki za pomoc... Dam sobie z tym spokój narazie i wezmę się za łatwiejsze rzeczy, które muszę zrobić na stronie. Za rzeczy na poziomie żłobka.
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.