Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQLite][PHP]Jak to uprościć? Bałagan w kodzie... działa, ale...
Forum PHP.pl > Forum > Przedszkole
arstherapia
Kodzę sobie wieczorem i wpadłem na niegłupi chyba pomysł, aby nazwa kategorii wyświetlała się nad listingiem filmów.

Dodałem więc stosowny blok, ale mam 2 x zapytanie do bazy i taki oto bałagan... :

  1. <?php
  2. $kat_id = $_GET['kat_id'];
  3.  
  4. $result = $db->query("SELECT kat_nazwa FROM kategorie
  5. where kategorie.kat_id = $kat_id");
  6.  
  7. foreach($result as $row) { echo '<div class="section_header">
  8. <div class="row">
  9. <div class="col-lg-12">
  10. <h3>'.$row['kat_nazwa'].'</h3><hr /></br>
  11. </div>
  12. </div>
  13. </div> ';}
  14.  
  15. $result = $db->query("SELECT Okladka, Nazwa, short_opis, terapeuta_nazwa FROM filmy
  16. inner join terapeuci
  17. on terapeuci.terapeuta_id = filmy.terapeuta_id
  18. inner join filmy_kategorie
  19. on filmy.film_id = filmy_kategorie.film_id
  20. where filmy_kategorie.kat_id = $kat_id
  21.  
  22. ");
  23.  
  24. foreach($result as $row)
  25. { echo '<div id="filmlista" class="col-lg-6"><center>
  26.  
  27.  
  28.  
  29. <div class="col-lg-4">
  30. <img src="'.$row['Okladka'].'" class="picColor"/>
  31. </div></center>';
  32.  
  33. echo '<center> <div class="col-lg-8"><h5><strong>'.$row['Nazwa'].'</strong></h5></br><strong>'.$row['terapeuta_nazwa'].'</strong><br/><br/>'.$row['short_opis'].'<br/><br/>
  34. <button type="button" class="btn btn-default btn-block">Zobacz opis i fragment filmu</button>
  35. </div>
  36.  
  37. </div></center>';
  38.  
  39.  
  40. }
  41. ?>


Czy można to zrobić estetyczniej? Np. w jednym zapytaniu, albo bez for - each dla jednej nazwy, tj. kat_nazwa ?

Dziękuję.
pedro84
Estetycznej nie by było usunąć to spaghetti i zrobić porządnie, jak matka natura nakazuje: z wykorzystaniem jakiegoś systemu szablonów i oddzielić logikę od warstwy prezentacji na początek.
arstherapia
pedro84: Tak, masz rację, ale ja MVC ( bo chyba o tym piszesz ) nie znam ni cholery, tym bardziej żadnego frameworka. Przymierzam się do Laravela, ale to jeszcze chwila.

Jak to spaghetti uprościć w tradycyjny sposób?
Turson
Nie trzeba od razu MVC bo nie o to chodzi, ale nie wsadzać kodu html w echo
arstherapia
Cytat(Turson @ 29.09.2014, 22:30:47 ) *
Nie trzeba od razu MVC bo nie o to chodzi, ale nie wsadzać kodu html w echo


Jak nie w echo to w co wsadzać?

( nie wiedziałem, że stanę przed takimi dylematami, w co wsadzać... wink.gif
Turson
  1. <?php foreach($sth as $v): ?>
  2. <tr><td><?= $v ?> </td></tr>
  3. <?php endforeach; ?>

mały przykład
arstherapia
Dziękuję, już bardziej łapię.

A zapytań sql nie da się jakoś uprościć, zrobić w jednym np. ?
mmmmmmm
Do drugiego apytania dorzuć jeszcze tabelę z kategoriami. Będiesz mial jedno zapytanie smile.gif
I dla nagłówka pobierasz zpierwszego rekordu kategorię, a ptem to już tradycyjnie...
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.