Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana if, elseif na switch?
Forum PHP.pl > Forum > Przedszkole
Blame
Napisałem ostatnio, kod galerii. Jest on trochę toporny, ładuje się dość długo. Przeczytałem na jakieś stronie, że lepszym rozwiązaniem od stosowania if i elseif jest switch. Czy da się w moim skrypcie ją zastosować, jeśli tak to czy moglibyście mi trochę z tym pomóc, nie chcę gotowca(chociaż jeśli ktoś będzie miał ochotę na jego zrobienie to proszę bardzo winksmiley.jpg) tylko przykład jak to zrobić. W ogóle wszelkie porady i podpowiedzi dot. optymalizacji tego skryptu są mile widziane. Oto kod skryptu:
  1. <?
  2. if(isset($_GET['galeria']) && $_GET['galeria']=='pokazalb')
  3. {
  4. echo '<b>galeria W TWOIM SERWISIE:</b><br>';
  5. $link=mysql_query('SELECT * FROM albumy ORDER BY id desc');
  6. while($wiersz=mysql_fetch_array($link))
  7. {
  8. echo '<b>'.$wiersz['nazwa'].'</b>';
  9. echo '<a href="./galeria.php?galeria=edytujalb&id='.$wiersz['id'].'">Edytuj</a>';
  10. echo ' - ';
  11. echo '<a href="./galeria.php?galeria=usunalb&id='.$wiersz['id'].'$amp;alb='.$wiersz['nazwa'].'">Usuń</a>';
  12. echo '<a href="./galeria.php?galeria=pokazzdj$amp;alb='.$wiersz['nazwa'].'"> - Pokaż zdjęcia w albumie</a>';
  13. echo "<br>\n";
  14. }
  15.  
  16. }
  17.  
  18. elseif(isset($_GET['galeria']) && $_GET['galeria']=='dodajalb')
  19. {
  20. echo '<b>DODAJ NOWĄ KATEGORIĘ</b><br>';
  21. echo '<form method="POST" action="./galeria.php?galeria=dopiszalb">
  22. <table border="0" width="100%">
  23. <tr>
  24. <td>Tytuł:</td>
  25. <td><input type="text" name="tytul" size="64"></td>
  26. </tr>
  27. <tr>
  28. <td>Opis: </td>'
  29. ?>
  30.  
  31. <script>edToolbar('opis'); </script>
  32. <?
  33. echo '<td><textarea name="opis" id="opis" class="ed"></textarea></td>
  34. </tr>
  35. <tr>
  36. <td> </td>
  37. <td><input type="submit" value="DODAJ"></td>
  38. </tr>
  39. </table>
  40. </form>';
  41. }
  42.  
  43. elseif(isset($_GET['galeria']) && $_GET['galeria']=='edytujalb' && isset($_GET['id']))
  44. {
  45. $id=$_GET['id'];
  46. $link=mysql_query("SELECT * FROM albumy WHERE id='$id'");
  47. $wiersz=mysql_fetch_array($link);
  48.  
  49. echo '<b>EDYTUJ ALBUM</b><br>';
  50. echo '<form method="POST" action="./galeria.php?galeria=wyedytujalb&id='.$wiersz['id'].'">
  51. <table border="0" width="100%">
  52. <tr>
  53. <td>Tytuł:</td>
  54. <td><input type="text" name="tytul" size="64" value="'.$wiersz['nazwa'].'"></td>
  55. </tr>
  56. <tr>
  57. <td>Opis: </td>'
  58. ?>
  59.  
  60. <script>edToolbar('opis3'); </script>
  61. <?
  62. echo '<td><textarea rows="5" name="opis3" id="opis3" cols="42">'.$wiersz['opis'].'</textarea></td>
  63. </tr>
  64. <tr>
  65. <td> </td>
  66. <td><input type="submit" value="EDYTUJ"></td>
  67. </tr>
  68. </table>
  69. </form>';
  70. }
  71.  
  72. elseif(isset($_GET['galeria']) && $_GET['galeria']=='dopiszalb')
  73. {
  74. $tytul=$_POST['tytul'];
  75. $tresc=$_POST['opis'];
  76. $tresc=bbcode($tresc);
  77. $adres=toPermalink($tytul);
  78. mysql_query("INSERT INTO albumy VALUES(0,'$tytul','$tresc')");
  79. echo 'Pomyślnie dodałem album o tytule: <b>'.$tytul.'</b>';
  80.  
  81. }
  82.  
  83. elseif(isset($_GET['galeria']) && $_GET['galeria']=='wyedytujalb' && isset($_GET['id']))
  84. {
  85. $tytul=$_POST['tytul'];
  86. $tresc=$_POST['opis'];
  87. $tresc=bbcode($tresc);
  88. $adres=toPermalink($tytul);
  89. $id=$_GET['id'];
  90.  
  91. mysql_query("UPDATE albumy SET tytul='$tytul' opis='$tresc' WHERE id='$id'");
  92. echo 'Pomyślnie wyedytowałem album! <br> Jego nowy tytuł to: <b>'.$tytul.'</b>';
  93.  
  94. }
  95.  
  96. elseif(isset($_GET['galeria']) && $_GET['galeria']=='usunalb' && isset($_GET['id']) && isset($_GET['alb']))
  97. {
  98. $id=$_GET['id'];
  99. $album=$_GET['alb'];
  100. mysql_query("DELETE FROM albumy WHERE id='$id'");
  101.  
  102. mysql_query("DELETE FROM galeria WHERE album='$album'");
  103.  
  104. echo 'Pomyślnie usunąłem wybrany album oraz wszystkie jego zdjęcia!';
  105.  
  106. }
  107.  
  108. elseif(isset($_GET['galeria']) && $_GET['galeria']=='pokazzdj' && isset($_GET['alb']))
  109. {
  110. echo '<b>galeria W TWOIM SERWISIE:</b><br>';
  111. $album=$_GET['alb'];
  112. $link=mysql_query('SELECT * FROM galeria ORDER BY id desc');
  113. while($wiersz=mysql_fetch_array($link))
  114. {
  115. echo '<img src="'.$wiersz['nazwa'].' alt="'.$wiersz['nazwa'].'">';
  116. echo '<a href="./galeria.php?galeria=edytujzdj&id='.$wiersz['id'].'">Edytuj</a>';
  117. echo ' - ';
  118. echo '<a href="./galeria.php?galeria=usunzdj&id='.$wiersz['id'].'">Usuń</a>';
  119. echo "<br>\n";
  120. }
  121.  
  122. }
  123.  
  124. elseif(isset($_GET['galeria']) && $_GET['galeria']=='dodajzdj')
  125. {
  126. echo '<b>DODAJ NOWĄ KATEGORIĘ</b><br>';
  127. echo '<form method="POST" action="./galeria.php?galeria=dopiszzdj" enctype="multipart/form-data">
  128. <table border="0" width="100%">
  129.  
  130. <tr>
  131. <th width="444" scope="row"><input name="plik" type="file" size="50"/></th>
  132. </tr>
  133. <tr>
  134. <td>Album: </td>
  135. <td><select name="album">';
  136.  
  137. $link=mysql_query('SELECT * FROM albumy ORDER BY id desc');
  138. while($wiersz=mysql_fetch_array($link))
  139. {
  140. echo '<option value=\"'.$wiersz['nazwa'].'\">';
  141. echo ''.$wiersz['nazwa'].'';
  142. echo '</option>';
  143. }
  144. echo '</select>
  145. </td>
  146. </tr>
  147. <tr>
  148. <td>Opis: </td>';
  149. ?>
  150.  
  151. <script>edToolbar('opis4'); </script>
  152. <?
  153. echo '<td><textarea name="opis4" id="opis4" class="ed"></textarea></td>
  154. </tr>
  155. <tr>
  156. <th scope="row"><input value="Dodaj zdjęcie" type="submit" /> </th>
  157. </tr>
  158. </table>
  159. </form>';
  160. }
  161.  
  162. elseif(isset($_GET['galeria']) && $_GET['galeria']=='edytujzdj' && isset($_GET['id']))
  163. {
  164. $id=$_GET['id'];
  165. $link=mysql_query("SELECT * FROM galeria WHERE id='$id'");
  166. $wiersz=mysql_fetch_array($link);
  167.  
  168. echo '<b>EDYTUJ ZDJĘCIE</b><br>';
  169. echo '<form method="POST" action="./galeria.php?galeria=wyedytujzdj&id='.$wiersz['id'].'">
  170. <table border="0" width="100%">
  171. <tr>
  172. <td>Opis: </td>'
  173. ?>
  174.  
  175. <script>edToolbar('opis2'); </script>
  176. <?
  177. echo '<td><textarea rows="5" name="opis2" id="opis2" cols="42">'.$wiersz['opis'].'</textarea></td>
  178. </tr>
  179. <tr>
  180. <td> </td>
  181. <td><input type="submit" value="EDYTUJ"></td>
  182. </tr>
  183. </table>
  184. </form>';
  185. }
  186.  
  187. elseif(isset($_GET['galeria']) && $_GET['galeria']=='dopiszzdj')
  188. {
  189. $p_nazwa=$_FILES['plik']['name'];
  190.  
  191. $p_nazwa=toPermalink($p_nazwa);
  192.  
  193. $folder="zdjecia/";
  194.  
  195. $p_smiec=$_FILES['plik']['tmp_name'];
  196.  
  197. $p_opis=$_POST['opis'];
  198.  
  199. $p_opis=bbcode($p_opis);
  200.  
  201. $p_kategoria=$_POST['kategoria'];
  202.  
  203. if (file_exists($folder.$p_nazwa))
  204. {
  205. echo ("Plik o takiej nazwie jest już na serwerze <b><i>".$p_nazwa."</b></i><br />");
  206. echo "<a href=index.php>Strona główna ...</a>";
  207. }
  208.  
  209. else {
  210. if(is_uploaded_file($p_smiec)) {
  211. move_uploaded_file($p_smiec, $folder.$p_nazwa);
  212.  
  213. echo "Przesłałem plik o nazwie: ".$p_nazwa;
  214. $zapytanie=mysql_query("insert into galeria values(NULL,'$p_kategoria','$p_nazwa','$p_opis')");
  215. echo '<a href="java script: history.back()">Wróć do poprzedniej strony</a>';
  216. }
  217. }
  218.  
  219. }
  220.  
  221. elseif(isset($_GET['galeria']) && $_GET['galeria']=='wyedytujzdj' && isset($_GET['id']))
  222. {
  223. $tresc=$_POST['opis'];
  224. $tresc=bbcode($tresc);
  225. $id=$_GET['id'];
  226.  
  227. mysql_query("UPDATE albumy SET opis='$tresc' WHERE id='$id'");
  228. echo 'Pomyślnie wyedytowałem zdjęcie!';
  229.  
  230. }
  231.  
  232. elseif(isset($_GET['galeria']) && $_GET['galeria']=='usunzdj' && isset($_GET['id']) && isset($_GET['alb']))
  233. {
  234. $id=$_GET['id'];
  235. mysql_query("DELETE FROM galeria WHERE id='$id'");
  236. echo 'Pomyślnie usunąłem wybrane zdjęcie!';
  237.  
  238. }
  239.  
  240. else echo 'Witaj w panelu administracyjnym podstronami...<br>
  241. W górnej części znajduje się menu, które pozwoji ci zarządzać podstronami w twoim serwise.<br>';
  242.  
  243.  
  244. ?>
maniekl2
Ciągle używasz :
if(isSet($_GET['galeria']....

Więc możesz to zastąpić switchem:
  1. switch($_GET['galeria']){
  2. case 'pokazalb':
  3.  
  4. break;
  5. //... itd.
  6. }

Blame
Cytat(maniekl2 @ 8.10.2009, 19:41:38 ) *
Ciągle używasz :
if(isSet($_GET['galeria']....

Więc możesz to zastąpić switchem:
  1. switch($_GET['galeria']){
  2. case 'pokazalb':
  3.  
  4. break;
  5. //... itd.
  6. }


Więc powinno to wyglądać mniej więcej tak?
  1. switch($_GET['galeria']){
  2. case 'edytujalb':
  3. isset($_GET['id']);
  4. itd...
  5. break;
  6. }
maniekl2
Tak tylko dopiszesz sobie kolejne casy:
  1. switch($_GET['galeria']){
  2. case 'edytuj':
  3.  
  4. break;
  5. case 'dodaj':
  6.  
  7. break;
  8. //itd.
  9. }
Fafu
Jeśli nadal nie rozumiesz to masz tu kawałek kodu:
  1. <?php
  2. switch($_GET['galeria']) {
  3. case 'pokazalb':
  4. echo '<b>galeria W TWOIM SERWISIE:</b><br>';
  5. $link=mysql_query('SELECT * FROM albumy ORDER BY id desc');
  6. while($wiersz=mysql_fetch_array($link))
  7. {
  8. echo '<b>'.$wiersz['nazwa'].'</b>';
  9. echo '<a href="./galeria.php?galeria=edytujalb&id='.$wiersz['id'].'">Edytuj</a>';
  10. echo ' - ';
  11. echo '<a href="./galeria.php?galeria=usunalb&id='.$wiersz['id'].'$amp;alb='.$wiersz['nazwa'].'">Usuń</a>';
  12. echo '<a href="./galeria.php?galeria=pokazzdj$amp;alb='.$wiersz['nazwa'].'"> - Pokaż zdjęcia w albumie</a>';
  13. echo "<br>\n";
  14. }
  15.  
  16. break;
  17.  
  18. case 'cos':
  19. // tutaj kod
  20. break;
  21.  
  22. default:
  23. echo 'Witaj w panelu administracyjnym podstronami...<br>
  24. W górnej części znajduje się menu, które pozwoji ci zarządzać podstronami w twoim serwise.<br>';
  25. }
  26. ?>
Blame
Dzięki chłopaki. Oczywiście odwdzięczę się należycie.
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.