Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyświetlanie danych z bazy z podziałem na dni
arturpiotrowski
post 26.03.2017, 07:34:20
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

Ostrzeżenie: (0%)
-----


Wybieram sobie z bazy dane takim oto zapytaniem:
Kod
SELECT name,day,odm FROM tabela ORDER BY day,odm

Myślę że nigdy w tabeli nie będzie więcej jak 50 rekordów.
Potrzebuje mieć wynikowy kod w podobnej formie:
  1. <div>
  2. <div class='row' id='day-1'>
  3. <div class="row">
  4. <div class="col-3">[odm]</div>
  5. <div class="col-9">[name]</div>
  6. </div>
  7. <div class="row">
  8. <div class="col-3">[odm]</div>
  9. <div class="col-9">[name]</div>
  10. </div>
  11. </div>
  12. <div class='row' id='day-2'>
  13. <div class="row">
  14. <div class="col-3">[odm]</div>
  15. <div class="col-9">[name]</div>
  16. </div>
  17. <div class="row">
  18. <div class="col-3">[odm]</div>
  19. <div class="col-9">[name]</div>
  20. </div>
  21. <div class="row">
  22. <div class="col-3">[odm]</div>
  23. <div class="col-9">[name]</div>
  24. </div>
  25. </div>
  26. // dalsze dni
  27. // ...
  28. <div class='row' id='day-7'>
  29. <div class="row">
  30. <div class="col-3">[odm]</div>
  31. <div class="col-9">[name]</div>
  32. </div>
  33. </div>
  34. </div>

udało mi się na te chwilę coś takiego napisać i stanąłem:
  1. $results = ; // wynik powyższego zapytania select
  2. if(!empty($results)) {
  3. $day = 0;
  4. $content .= '<div>';
  5. foreach ($results as $row ){
  6. if($row->day<>$day){
  7. $content .= '<div class="row" id="day-'.$row->day.'">';
  8. /**
  9. * tu pewnie jakaś pętla foreach()
  10. * zwracająca name i odm dla danego day
  11. * tylko nie wiem jak ją zapisać
  12. **/
  13. $content .= '</div>';
  14. }
  15. $day = $row->day;
  16. }
  17. $content .= '</div>';
  18. }

Pomóżcie proszę.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
arturpiotrowski
post 29.03.2017, 21:47:43
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

Ostrzeżenie: (0%)
-----


Tu nie ma dat w tej bazie są tylko numery dla dni tygodnia. Załózmy że mam 2 zadania 3 dnia tygodnia, godziny 15-16, i 16-19 moj kod html fragmentu strony chcę aby wyglądał wtedy mniej więcej tak
  1. <ul>
  2. <li><a href="#day-1">Poniedziałek</a></li>
  3. <li><a href="#day-2">Wtorek</a></li>
  4. <li><a href="#day-3">Środa</a></li>
  5. <li><a href="#day-4">Czwartek</a></li>
  6. <li><a href="#day-5">Piątek</a></li>
  7. <li><a href="#day-6">Sobota</a></li>
  8. <li><a href="#day-7">Niedziela</a></li>
  9. </ul>
  10. <div class="tab-content">
  11. <div class="row hide" id="day-1">
  12. Brak danych
  13. </div>
  14. <div class="row hide" id="day-2">
  15. Brak danych
  16. </div>
  17. <div class="row hide" id="day-3">
  18. <div>15:00 - 16:00 Tytuł nr 18</div>
  19. <div>16:00 - 19:00 Tytuł nr 19</div>
  20. </div>
  21. <div class="row hide" id="day-4">
  22. Brak danych
  23. </div>
  24. <div class="row hide" id="day-5">
  25. Brak danych
  26. </div>
  27. <div class="row hide" id="day-6">
  28. Brak danych
  29. </div>
  30. <div class="row hide" id="day-7">
  31. Brak danych
  32. </div>
  33. </div>

Jak widać każdy dzień tygodnia ma swój div - domyślnie ukryty. Po odpowiednim oprogramowaniu tego np w jQuery jak teraz kliknę w Poniedziałek to div id=day-1 zmieni klasę z hide na show i wyświetli mi zawartość diva o id day-1, kliknę na wtorek zmieni się klasa hide na show w div id = day-2 i powróci hide w poniedziałek itd. przy kolejnych dniach.

W twojej wersji przy założeniu powyższych danych stworzy się tylko
  1. <ul>
  2. <li><a href="#day-1">Poniedziałek</a></li>
  3. <li><a href="#day-2">Wtorek</a></li>
  4. <li><a href="#day-3">Środa</a></li>
  5. <li><a href="#day-4">Czwartek</a></li>
  6. <li><a href="#day-5">Piątek</a></li>
  7. <li><a href="#day-6">Sobota</a></li>
  8. <li><a href="#day-7">Niedziela</a></li>
  9. </ul>
  10. <div class="tab-content">
  11. <div class="row hide" id="day-3">
  12. <div>15:00 - 16:00 Tytuł nr 18</div>
  13. <div>16:00 - 19:00 Tytuł nr 19</div>
  14. </div>
  15. </div>

Pytanie co się pokaże w twojej wersji jak kliknę na wtorek, w założeniu powinien się pokazać div id = day-2 ale go nie ma w tym kodzie.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 20:43