Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Iteracja bloku switch-case. Jak zrobić, czy da się zrobić?
Forum PHP.pl > Forum > PHP
hippie
Witam ponownie!

Mam pewien kod PHP:

  1. <?php
  2. session_name('sesja1');
  3.  
  4. mysql_connect('localhost', 'root', 'tajnehaslo') or die('Wystąpił błąd o treści<br />'.mysql_error());
  5. mysql_select_db('baza') or die('Nie udało się wybrać bazy danych. Błąd:<br />'.mysql_error());
  6. mysql_query("SET NAMES 'utf8'");
  7. mysql_query("SET CHARACTER SET 'utf8_general_ci'");
  8.  
  9. $wyciaganie_style = mysql_query('SELECT * FROM `style` ORDER BY `name`') or die('Wystąpił błąd o treści<br />:'.mysql_error());
  10.  
  11. switch($_GET['id'])
  12. {
  13. default:
  14. echo('<table>
  15. <tr>
  16. <th>Miniaturka</th>
  17. <th>Informacje</th>
  18. <th>Pobierz</th>
  19. </tr>');
  20. while($wyciaganie_style_txt = mysql_fetch_array($wyciaganie_style))
  21. {
  22. echo('<tr>
  23. <td><a href="themes.php?id='.$wyciaganie_style_txt['id'].'"><img src="'.$wyciaganie_style_txt['pole1'].'" alt="'.$wyciaganie_style_txt['name'].'" border="0" /></a></td>
  24. <td>Nazwa motywu: <a href="themes.php?id='.$wyciaganie_style_txt['id'].'">'.$wyciaganie_style_txt['pole2'].'</a><br />
  25. Autor: '.$wyciaganie_style_txt['pole3'].'<br />
  26. Licencja: '.$wyciaganie_style_txt['pole4'].'<br />
  27. Dodano: '.$wyciaganie_style_txt['pole5'].'
  28. </td>
  29. <td><a href="'.$wyciaganie_style_txt['pole6'].'">Pobierz</a></td>
  30. </tr>');
  31. }
  32. echo('</table>
  33. </div>'
  34. );
  35. break;
  36. case 2:
  37. echo('<div id="main">
  38. <h3>Pobierz motyw: '.$wyciaganie_style_txt['pole1'].'</h3>
  39. <p><strong>Autor motywu: </strong>'.$wyciaganie_style_txt['pole2'].'
  40. <p><strong>Opis motywu: </strong>'.$wyciaganie_style_txt['pole3'].'</p>
  41. <p><strong>Licencja: </strong>'.$wyciaganie_style_txt['pole4'].'</p>
  42. <p><strong>Buttony: </strong>'.$wyciaganie_style_txt['pole5'].'</p>
  43. <p><strong>Live demo: </strong>'.$wyciaganie_style_txt['pole6'].'</p>
  44. <p><strong>Screeny: </strong></p>
  45. <p><a href="'.$wyciaganie_style_txt['pole7'].'" title=""><img src="'.$wyciaganie_style_txt['pole8'].'" border="0" alt="" /></a></p>
  46. <p class="float-right"><a href="'.$wyciaganie_style_txt['pole9'].'"><img src="images/download.png" alt="" border="0" /></a></p>
  47. </div>');
  48. break;
  49. }
  50. ?>


Jak widać, wyciągam pewne dane z bazy. W bloku switch-case default to lista, która wyświetla się jak najbardziej prawidłowo, a kolejne kroki to poszczególne style. I tutaj pojawia się moje pytanie. Czy da się zrobić, bym nie musiał pisać wielu case, tylko np.

  1. case $wyciaganie_style_txt['id']:
  2. //cośtam


? Próbowałem już tak zrobić, jednakże po próbie przejścia do strony stylu wyświetlała się tylko lista.

Z góry dzięki za pomoc.
Pozdrawiam,
hippie
vokiel
O ile dobrze widzę, to pobierasz całą tabelę ze stylami, a chcesz użyć tylko tego przekazanego przez GET, tak ?

No to przekaż, te $_GET['id'] do mysql_query, tam podaj jako parametr, dzięki temu pobierzesz tylko wymagany styl. A dalej w skrypcie zamiast switch-case zrobisz zwykły if.

  1. if ($_GET['id']){
  2. // wyświetlenie z bazy
  3. }else{
  4. // wyświetlenie domyślnego
  5. }
hippie
Dzięki Ci dobry człowieku, sam bym na to w życiu nie wpadł 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.