Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Wyświetlenie danych z mysql według roku i miesiąca
Evinek
post
Post #1





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


Witam was.
Otóż tym razem mam problem z wyświetleniem danych z mysql do tabeli. Może najpierw obrazek pokaże jak by to miało wyglądać.
(IMG:http://iv.pl/images/19289410947162124262.png)
Jest to galeria. Każdy rok posiada miesiące. Lata będą od 2009 do aktualnego (czyli funkcją date() pobiorę aktualną date). Miesiące mają być wyświetlane wszystkie - w każdym roku.
Dane w bazie mam tak:
gid | title | date
ID | nazwa galerii | np. 2014-07-05

Kod tabeli w HTML to:
  1. <div class="year">
  2. <img src="<?= THEME_WWW ?>date/2012.jpg" alt="2012" width="200"/>
  3. </div>
  4. <tr class="month">
  5. <td>Styczeń</td>
  6. <td>Luty</td>
  7. <td>Marzec</td>
  8. </tr>
  9. <tr>
  10. <td>Nazwa1.1<br />Nazwa1.2<br />Nazwa1.3</td>
  11. <td>Nazwa2</td>
  12. <td>Nazwa3</td>
  13. </tr>
  14. <tr class="month">
  15. <td>Kwiecień</td>
  16. <td>Maj</td>
  17. <td>Czerwiec</td>
  18. </tr>
  19. <tr>
  20. <td>Nazwa1.1<br />Nazwa1.2<br />Nazwa1.3</td>
  21. <td>Nazwa2</td>
  22. <td>Nazwa3</td>
  23. </tr>
  24. <tr class="month">
  25. <td>Lipiec</td>
  26. <td>Sierpień</td>
  27. <td>Wrzesień</td>
  28. </tr>
  29. <tr>
  30. </tr>
  31. <tr class="month">
  32. <td>Październik</td>
  33. <td>Listopad</td>
  34. <td>Grudzień</td>
  35. </tr>
  36. <tr>
  37. <td>Nazwa1.1<br />Nazwa1.2<br />Nazwa1.3</td>
  38. <td></td>
  39. <td></td>
  40. </tr>
  41. </table>


Teraz pytanie. Jak mogę zrobić w pętli aby wszystko poprawnie wyświetlić? Każda galeria (link) aby była w danym miesiącu i roku?
Chodzi aby wyświetlić to chronologicznie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Evinek
post
Post #2





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


Ach, ależ to trudne.

  1. $bufor = NULL;
  2. $bufor2 = NULL;
  3. while($row = mysql_fetch_array($result))
  4. {
  5. //$photo .= $row['gid'].'<br />'.$row['title'].'<br />'.$row['date'].'<hr />';
  6. $y = date("Y", strtotime($row['date']));
  7. $m = date("n", strtotime($row['date']));
  8. if($y != $bufor){
  9. echo '<div class="year">
  10. <img src="'.THEME_WWW.'date/'.$y.'.jpg" alt="2012" width="200"/>
  11. </div>';
  12. $bufor = $y;
  13. }
  14. if($m != $bufor2){
  15. echo $m.'<br />';
  16. $bufor2 = $m;
  17. }
  18. echo $row['title'].' ~ '.$y.'::'.$m.'<br />';
  19. }

Przykładowy wynik:
(IMG:http://iv.pl/images/20968434563961000005.png)
Czyli ogólnie jest okej, tylko teraz muszę to zmontować aby był wynik taki:
  1. <div>
  2. <div class="big">
  3. <div class="block">
  4. <div class="month">Styczeń</div>
  5. Test<br />
  6. Test<br />
  7. Test<br />
  8. </div>
  9. <div class="block">
  10. <div class="month">Luty</div>
  11. Test<br />
  12. Test<br />
  13. Test<br />
  14. </div>
  15. <div class="block">
  16. <div class="month">Marzec</div>
  17. Test<br />
  18. Test<br />
  19. Test<br />
  20. </div>
  21. </div>
  22. <div class="big">
  23. <div class="block">
  24. <div class="month">Kwiecień</div>
  25. Test<br />
  26. Test<br />
  27. Test<br />
  28. </div>
  29. <div class="block">
  30. <div class="month">Maj</div>
  31. Test<br />
  32. Test<br />
  33. Test<br />
  34. </div>
  35. <div class="block">
  36. <div class="month">Czerwiec</div>
  37. Test<br />
  38. Test<br />
  39. Test<br />
  40. </div>
  41. </div>
  42. <div class="big">
  43. <div class="block">
  44. <div class="month">Lipiec</div>
  45. Test<br />
  46. Test<br />
  47. Test<br />
  48. </div>
  49. <div class="block">
  50. <div class="month">Sierpień</div>
  51. Test<br />
  52. Test<br />
  53. Test<br />
  54. </div>
  55. <div class="block">
  56. <div class="month">Wrzesień</div>
  57. Test<br />
  58. </div>
  59. </div>
  60. <div class="big">
  61. <div class="block">
  62. <div class="month">Październik</div>
  63. Test<br />
  64. </div>
  65. <div class="block">
  66. <div class="month">Listopad</div>
  67. Test<br />
  68. Test<br />
  69. Test<br />
  70. </div>
  71. <div class="block">
  72. <div class="month">Grudzień</div>
  73. Test<br />
  74. Test<br />
  75. Test<br />
  76. </div>
  77. </div>
  78. </div>

Najtrudniejsze jest dla mnie aby wyświetlić
  1. <div class="block">
  2. <div class="month">Grudzień</div>
  3. Test<br />
  4. Test<br />
  5. Test<br />
  6. </div>


Czyli muszę jakimś sposobem na początku wyświetlić przy miesiącu
  1. <div class="block">
  2. <div class="month">Grudzień</div>

A przy końcu
  1. </div>


Chyba myślę, że lepiej się opłaci dać te dane do tablicy $gallery[rok][miesiac] = $row['title'];
A później wyświetlić w pętli. Nie wiem jak później będzie z pamięcią - nie będzie za dużo danych?
Proszę jeszcze o rady. (IMG:style_emoticons/default/smile.gif)
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: 4.10.2025 - 21:42