Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Bardziej zaawansowana edycja rekordów
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich użytkowników tego forum.
Mam problem ze skryptem. W sumie gdybym nie miał to nie zakładałbym tego tematu. No ale cóż. Przejdę do rzeczy.

Napisałem skrypt edycji rekordów, ale nie działa tak jakbym chciał. Mianowicie. Na samym początku wybieram kategorie rekordów. Dajmy na to, że w tym przypadku będzie to kategoria "TESTY". Klikam przycisk Wybierz. W tym momencie formularz przenosi mnie do następnego kroku, gdzie do wybrania mam newsy z kategorii TESTY. Więc wybieram teraz rekord, który chcę edytować klikam edytuj i tutaj zaczyna się problem. Zamiast wyświetlić zawartość tego rekordu to otrzymuje informacje, że nie zdeklarowałem wcześniej zmiennych(a są zdeklarowane) oraz komunikat, że notka została zedytowana, a wcale skrypt nie przeszedł do formularz, gdzie mogę edytować rekord. Proszę o pomoc. Nie mogę sobie dać rady z tym skryptem od miesięcy.

edytuj.php

  1. <?php
  2. if(!$_SESSION['access'] || !$_SESSION['login'])
  3. {
  4. header('Location: index.php');
  5. }
  6. include('include/db.php');
  7. if(isset($_POST['select']))
  8. {
  9. $wyb = $_POST['select'];
  10. }
  11. if(isset($_POST['nazwa']))
  12. {
  13. if(isset($_POST['plik']))
  14. {
  15. }
  16. }
  17. if(!isset($_POST['select']) && empty($_POST['select']))
  18. {
  19. echo '<form action="index.php?page=edytuj&wpis=1" method="post">
  20. <br />Wybierz kategorię:<br /><br /><select name="select">
  21. <option value="Testy">Testy</option>
  22. <option value="Arkusz kalkulacyjny">Arkusz kalkulacyjny</option>
  23. <option value="Bazy danych">Bazy danych</option>
  24. </select>
  25. <input name="wybierz" type="submit" value="Wybierz" />
  26. <br /><br />
  27. </form><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  28. }
  29. else
  30. {
  31. if($wyb=='Testy')
  32. {
  33. echo '<form action="index.php?page=edytuj&wpis=2" method="post">
  34. <input type="hidden" name="send" value="2">
  35. <input type="hidden" name="select" value="'.$wyb.'" /><br />
  36. Aktualna kategoria to: <strong>'.$wyb.'</strong><br /><br />
  37. <select name="edycja"> ';
  38. $zapytanie = "SELECT * FROM `testy` ORDER BY `id` DESC";
  39. $zapytanie = stripslashes($zapytanie);
  40. $idzapytania = mysql_query($zapytanie);
  41. while ($wiersz = mysql_fetch_array($idzapytania))
  42. echo '<option value="'.$wiersz['id'].'">('.$wiersz['id'].') '.$wiersz['nazwa'].'</option>';
  43. echo '</select>
  44. <input name="edytuj" type="submit" value="Edytuj" />';
  45. echo '<br /><br />
  46. </form><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  47. }
  48. elseif($wyb=='Arkusz kalkulacyjny')
  49. {
  50. echo '<form action="index.php?page=edytuj&wpis=2" method="post">
  51. <input type="hidden" name="send" value="2">
  52. <input type="hidden" name="select" value="'.$wyb.'" /><br />
  53. Aktualna kategoria to: <strong>'.$wyb.'</strong><br /><br />
  54. <select name="edycja"> ';
  55. $zapytanie = "SELECT * FROM `arkusz_kalkulacyjny` ORDER BY `id` DESC";
  56. $zapytanie = stripslashes($zapytanie);
  57. $idzapytania = mysql_query($zapytanie);
  58. while ($wiersz = mysql_fetch_array($idzapytania))
  59. echo '<option value="'.$wiersz['id'].'">('.$wiersz['id'].') '.$wiersz['nazwa'].'</option>';
  60. echo '</select>
  61. <input name="edytuj" type="submit" value="Edytuj" />';
  62. echo '<br /><br />
  63. </form><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  64. }
  65. elseif($wyb=='Bazy danych')
  66. {
  67. echo '<form action="index.php?page=edytuj&wpis=2" method="post">
  68. <input type="hidden" name="send" value="2">
  69. <input type="hidden" name="select" value="'.$wyb.'" /><br />
  70. Aktualna kategoria to: <strong>'.$wyb.'</strong><br /><br />
  71. <select name="edycja"> ';
  72. $zapytanie = "SELECT * FROM `bazy_danych` ORDER BY `id` DESC";
  73. $zapytanie = stripslashes($zapytanie);
  74. $idzapytania = mysql_query($zapytanie);
  75. while ($wiersz = mysql_fetch_array($idzapytania))
  76. echo '<option value="'.$wiersz['id'].'">('.$wiersz['id'].') '.$wiersz['nazwa'].'</option>';
  77. echo '</select>
  78. <input name="edytuj" type="submit" value="Edytuj" />
  79. <br /><br />';
  80. echo '</form><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  81. }
  82. }
  83. if(isset($_POST['edytuj']))
  84. {
  85. if(!isset($_POST['edycja']) && empty($_POST['edycja']))
  86. {
  87. if($wyb=='Testy')
  88. {
  89. echo '<div style="text-align:center;"><form action="index.php?page=edytuj&wpis=3" method="post">';
  90. $zapytanie2 = 'SELECT * FROM `testy` WHERE `id`="'.$_POST['id'].'"';
  91. $idzapytania2 = mysql_query($zapytanie2);
  92. while ($wiersz = mysql_fetch_array($idzapytania2))
  93. echo '<input type="hidden" name="id" value="'.$wiersz['id'].'" />
  94. <input type="hidden" name="send" value="1">
  95. <input type="hidden" name="edycja" value="wartość" /><br /> Nazwa<br />
  96. <input type="text" name="tytul" value="'.stripslashes($wiersz['tytul']).'" size="26" /><br />Treść
  97. <br /><textarea name="tresc" cols="50" rows="10" id="textarea">'.stripslashes($wiersz['tresc']).'</textarea><br />
  98. <br />Autor:<br><input type="text" name="autor" value="'.$_SESSION['login'].'" /><br /><br />
  99. <input name="zapisz" type="submit" value="Zapisz" /><br />
  100. </form><br <br /><br /></div>';
  101. }
  102. elseif($wyb=='Arkusz kalkulacyjny')
  103. {
  104. echo '<div style="text-align:center;"><form action="index.php?page=edytuj&wpis=3" method="post">';
  105. $zapytanie2 = 'SELECT * FROM `arkusz_kalkulacyjny` WHERE `id`="'.$_POST['id'].'"';
  106. $idzapytania2 = mysql_query($zapytanie2);
  107. while ($wiersz = mysql_fetch_array($idzapytania2))
  108. echo '<input type="hidden" name="id" value="'.$wiersz['id'].'" />
  109. <input type="hidden" name="send" value="1">
  110. <input type="hidden" name="edycja" value="wartość" /><br /> Nazwa<br />
  111. <input type="text" name="tytul" value="'.stripslashes($wiersz['tytul']).'" size="26" /><br />Treść
  112. <br /><textarea name="tresc" cols="50" rows="10" id="textarea">'.stripslashes($wiersz['tresc']).'</textarea><br />
  113. <br />Autor:<br><input type="text" name="autor" value="'.$_SESSION['login'].'" /><br /><br />
  114. <input name="zapisz" type="submit" value="Zapisz" /><br />
  115. </form><br <br /><br /></div>';
  116. }
  117. elseif($wyb=='Bazy danych')
  118. {
  119. echo '<div style="text-align:center;"><form action="index.php?page=edytuj&wpis=3" method="post">';
  120. $zapytanie2 = 'SELECT * FROM `bazy_danych` WHERE `id`="'.$_POST['id'].'"';
  121. $idzapytania2 = mysql_query($zapytanie2);
  122. while ($wiersz = mysql_fetch_array($idzapytania2))
  123. echo '<input type="hidden" name="id" value="'.$wiersz['id'].'" />
  124. <input type="hidden" name="send" value="1">
  125. <input type="hidden" name="edycja" value="wartość" /><br /> Nazwa<br />
  126. <input type="text" name="tytul" value="'.stripslashes($wiersz['tytul']).'" size="26" /><br />Treść
  127. <br /><textarea name="tresc" cols="50" rows="10" id="textarea">'.stripslashes($wiersz['tresc']).'</textarea><br />
  128. <br />Autor:<br><input type="text" name="autor" value="'.$_SESSION['login'].'" /><br /><br />
  129. <input name="zapisz" type="submit" value="Zapisz" /><br />
  130. </form><br <br /><br /></div>';
  131. }
  132. }
  133. else
  134. {
  135. if($_POST['edycja'])
  136. {
  137. if($wyb=='Testy')
  138. {
  139. $zapytanie1 = 'UPDATE `testy` SET `nazwa`= "'.$nazwa.'", `tresc`= "'.$tresc.'", `plik`= "upload/testy/'.$plik_nazwa.'", `adres`= "/testy" WHERE `id`="'.$_POST['id'].'"';
  140. $idzapytania1 = mysql_query($zapytanie1) or die(mysql_error());
  141. }
  142. elseif($wyb=='Arkusz kalkulacyjny')
  143. {
  144. $zapytanie1 = 'UPDATE `arkusz_kalkulacyjny` SET `nazwa`= "'.$nazwa.'", `tresc`= "'.$tresc.'", `plik`= "upload/arkusz_kalkulacyjny/'.$plik_nazwa.'", `adres`= "/arkusz_kalkulacyjny" WHERE `id`="'.$_POST['id'].'"';
  145. $idzapytania1 = mysql_query($zapytanie1) or die(mysql_error());
  146. }
  147. elseif($wyb=='Bazy danych')
  148. {
  149. $zapytanie1 = 'UPDATE `bazy_danych` SET `nazwa`= "'.$nazwa.'", `tresc`= "'.$tresc.'", `plik`= "upload/bazy_danych/'.$plik_nazwa.'", `adres`= "/bazy_danych" WHERE `id`="'.$_POST['id'].'"';
  150. $idzapytania1 = mysql_query($zapytanie1) or die(mysql_error());
  151. }
  152. }
  153.  
  154. }
  155. }
  156. if(isset($_POST['send']))
  157. {
  158. if($_POST['send'])
  159. {
  160. if(isset($idzapytania1))
  161. {
  162. if($idzapytania1 === TRUE)
  163. {
  164. echo '<div align="center"><font color="green"><b>Notka została zedytowana.</b></font</div><br />';
  165. }
  166. else
  167. {
  168. echo '<div style="text-align:center;"><font color="red"><b>Nie udało się zedytować notki. Proszę spróbować za jakiś czas!</b></font</div><br />';
  169. }
  170. }
  171. }
  172. }
  173. mysql_close($connect);
  174. ?>


Z góry dziękuje za pomoc winksmiley.jpg
Pozdrawiam smile.gif
Pilsener
1. Kategorię wysyłaj przez GET, odbieraj z adresu i wsadzaj do zapytania pobierającego newsy, co jest prostsze
2. Na podobnej zasadzie ma działać przycisk "wybierz" czy tam edytuj
3. Wywal te elseify (najlepiej w ogóle nie używać elseifów) i użyj switcha, by podzielić kod na funkcjonalne części:
  1.  
  2. //kod wspólny
  3.  
  4. $go = $_GET['go']; //dzielimy kod na części
  5. switch ($go){
  6. case '': //link pusty
  7.  
  8. break;
  9. case 'ogladaj'; //link ?go=ogladaj
  10.  
  11.  
  12. break;
  13. case 'edytuj'; //link ?go=edytuj
  14.  
  15. break;
  16. }//koniec switch
  17.  
  18. //kod wspólny


A w ogóle najlepiej używać tylko jednego pliku - index.php do którego trafiają wszystkie zmienne (post i get) a na ich podstawie potrzebne fragmenty kodu się includuje - łatwiej chyba przyjść z kodem do zmiennych niż wysyłać zmienne do kodu?

Teraz kod jest tak pogmatwany, że Sherlock Holmes by się poddał ze swoim szkiełkiem i okiem.
adrianozo
Dzięki wielkie smile.gif
Jutro to przerobie smile.gif
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.