Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyświetlanie danych z bazy z podziałem na dni
arturpiotrowski
post
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
Post #2





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

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


Zrobiłem to wczoraj wieczorem po tym jak napisałem posta, ta pętla for chodziła mi po głowie, ale poza tym pisałeś że to bzdurny pomysł te klucze, więc się nie wychylałem z tym co zrobiłem bo myślałem że może walne jakąś głupotę (IMG:style_emoticons/default/smile.gif)
  1. $data = [];
  2. for($i = 1; $i<=7; $i++){
  3. $data[$i] = [];
  4. }
  5. foreach($results as $row){
  6. $day = $row->day;
  7. // to w ifie niżej sumie niepotrzebne
  8. // chyba ze trafi się inna cyfra jak 1 do 7
  9. if(!isset($data[$day])){
  10. $data[$day] = [];
  11. }
  12. $data[$day][] = $row;
  13. }

i reszta z twojego postu, tj kolejne pętle foreach
  1. $content .= '<div>';
  2. foreach ($data as $day => $rows ){
  3. $content .= '<div class="row" id="day-'.$day.'">';
  4. foreach ($rows as $row) {
  5. $content.= $row->odm;
  6. //tutaj sobie dostosuję ten content jaki chce miec
  7. }
  8. $content .= '</div>';
  9. }
  10. $content .= '</div>';


Ten post edytował arturpiotrowski 30.03.2017, 17:25:58
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 12:29