Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlanie wyników pod odpowiednimi datami od do
pawel06281990
post 13.06.2024, 15:07:10
Post #1





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Witam próbuje zrobić, aby wpisy z bazy wyświetlały się tak ze mamy date np 10-06-2024 do 16-06-2024 i chce, żeby wpisy były wyświetlane w tym przedziale w bazie tak samo mam wpisy poniedziałek i data wtorek i data itp osiągnąłem że daty się wyświetlają, ale wszystkie wpisy wyświetlają się pod dwoma datami


To mój skrypt
  1. // Ustawienia paginacji
  2. $items_per_page = 10; // Liczba intencji na stronę
  3. $current_page = ( get_query_var('paged') ) ? get_query_var('paged') : 1; // Bieżąca strona
  4. $offset = ($current_page - 1) * $items_per_page;
  5.  
  6. // Pobierz unikalne tygodnie
  7. $unique_weeks = $this->wpdb->get_results("SELECT DISTINCT YEAR(data) as year, MONTH(data) as month FROM $this->intencja ORDER BY data ASC");
  8. $selected_month = isset($_GET['m']) ? $_GET['m'] : '';
  9. // Formularz wyboru tygodnia
  10. echo '<form method="GET" action="">';
  11. echo '<select name="m">';
  12. echo'<option value="">' . __('Wszystkie daty ', 'intencje') . '</option>';
  13. foreach ($unique_weeks as $week) {
  14. $week_value = $week->year . '-'. $week->month;
  15. $selected = ($selected_month == $week_value) ? ' selected="selected"' : '';
  16. echo '<option value="' . esc_attr($week_value) . '"' . $selected . '>' . esc_html($week->year . ' ' .fullnamemonth($week->month)) . '</option>';
  17. }
  18. echo '</select>';
  19. echo '<input type="submit" value="Wybierz tydzień">';
  20. echo '</form>';
  21.  
  22. // Pobierz wybrany tydzień
  23.  
  24. if ($selected_month) {
  25. list($selected_year, $selected_month) = explode('-', $selected_month);
  26.  
  27. // Pobierz intencje dla wybranego tygodnia
  28. $data_intencji = $this->wpdb->get_results(
  29. $this->wpdb->prepare(
  30. "SELECT * FROM $this->intencja WHERE status='1' AND YEAR(data) = %d AND MONTH(data) = %d ORDER BY data ASC LIMIT %d OFFSET %d",
  31. $selected_year, $selected_month, $items_per_page, $offset
  32. )
  33. );
  34.  
  35. $total_intencji = $this->wpdb->get_var(
  36. $this->wpdb->prepare(
  37. "SELECT COUNT(*) FROM $this->intencja WHERE YEAR(data) = %d AND MONTH(data) = %d",
  38. $selected_year, $selected_month
  39. )
  40. );
  41.  
  42. }else{
  43. // Pobierz intencje dla wybranego tygodnia
  44. $data_intencji = $this->wpdb->get_results(
  45. $this->wpdb->prepare(
  46. "SELECT * FROM $this->intencja WHERE status='1' ORDER BY data ASC LIMIT %d OFFSET %d",
  47. $items_per_page, $offset
  48. )
  49. );
  50.  
  51. $total_intencji = $this->wpdb->get_var(
  52. $this->wpdb->prepare(
  53. "SELECT COUNT(*) FROM $this->intencja WHERE status='1'"
  54. )
  55. );
  56. }
  57.  
  58.  
  59. $data_intencji1 = $this->wpdb->get_results("SELECT data_poczetek, data_zakonczenie FROM ".$this->intencja." WHERE dni_tygodnia='1'");
  60. foreach ($data_intencji1 as $data1) {
  61. $date_start = strtotime($data1->data_poczetek);
  62. $date_end = strtotime($data1->data_zakonczenie);
  63. echo'<h4 style="text-align: center;"><span style="color: #000000;"><strong>Intencje Mszy Świętej<br>
  64. </strong></span></h4>';
  65. echo '<h4 style="text-align: center; margin-bottom: 45px;">
  66. <strong><span style="text-decoration: underline; color: #000000;">' . date('d-m-Y', $date_start) . 'r - ' . date('d-m-Y', $date_end) . 'r </span></strong></h4>';
  67.  
  68.  
  69.  
  70. // Wyświetl intencje
  71. foreach ($data_intencji as $data) {
  72.  
  73. if($data->oznaczenia == 1){
  74. $colory_oznaczen = "color:".intencje_options('kolor_swieta').";";
  75. }elseif($data->oznaczenia == 2){
  76. $colory_oznaczen = "color:".intencje_options('kolor_uroczytosc').";";
  77. }elseif($data->oznaczenia == 3){
  78. $colory_oznaczen = "color:".intencje_options('kolor_dni_powszednie').";";
  79. }else{
  80. $colory_oznaczen ="";
  81. }
  82. if($data->dni_tygodnia == 1){
  83. $dni_tygodnia="Poniedziałek";
  84. }
  85. if($data->dni_tygodnia == 2){
  86. $dni_tygodnia="Wtorek";
  87. }
  88. if($data->dni_tygodnia == 3){
  89. $dni_tygodnia="Środa";
  90. }
  91. if($data->dni_tygodnia == 4){
  92. $dni_tygodnia="Czwartek";
  93. }
  94. if($data->dni_tygodnia == 5){
  95. $dni_tygodnia="Piątek";
  96. }
  97. if($data->dni_tygodnia == 6){
  98. $dni_tygodnia="Sobota";
  99. }
  100. if($data->dni_tygodnia == 7){
  101. $dni_tygodnia="Niedziela";
  102. }
  103.  
  104. $date = explode("-", $data->intencja_data);
  105. echo'<span style="text-decoration: underline; '.$colory_oznaczen.'"><strong>'.$dni_tygodnia.' - '.esc_html($date[2]).'-'.esc_html($date[1]).'-'.esc_html($date[0]).'r '.esc_html($data->intencja_name).'</strong></span>';
  106. echo'<p>'.__($data->intencji).'</p>';
  107. }
  108.  
  109. }
  110. // Paginacja
  111.  
  112.  
  113. $total_pages = ceil($total_intencji / $items_per_page);
  114.  
  115. // Utwórz linki do paginacji
  116. $page_links = paginate_links( array(
  117. 'base' => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
  118. 'format' => '/page/%#%',
  119. 'current' => max( 1, $current_page ),
  120. 'total' => $total_pages,
  121. 'prev_text' => __('&laquo; Previous'),
  122. 'next_text' => __('Next &raquo;'),
  123. ));
  124.  
  125. // Wyświetl linki do paginacji
  126. if ( $page_links ) {
  127. echo '<div class="pagination">' . $page_links . '</div>';
  128. }


Jak go mogę dostosować żeby się wysiedlało tak jak chce.
Go to the top of the page
+Quote Post
nospor
post 13.06.2024, 15:19:07
Post #2





Grupa: Moderatorzy
Postów: 36 519
Pomógł: 6308
Dołączył: 27.12.2004




pokaz na jakims przykladzie jak chcesz by sie wyswietlalo ostatecznie bo nic nie kumam


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post 13.06.2024, 15:27:41
Post #3





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Chodzi mi o taki wzór

03-06-2024 - 09-06-2024

Poniedziałek 03-06-2024
Wtorek 04-06-2024
Środa 05-06-2024
czwartek 06-06-2024
piątek 07-06-2024
sobota 08-06-2024
Niedziela 09-06-2024

Kolejne od 10-06-2024 - 16-06-2024

Poniedziałek 10-06-2024
Wtorek 11-06-2024
Środa 12-06-2024
czwartek 13-06-2024
piątek 14-06-2024
sobota 15-06-2024
Niedziela 16-06-2024

Chce w ten sposób wyświetlić dane z bazy w bazie mam takie kolumny
  1. `intencja_id` mediumint(9) NOT NULL,
  2. `dni_tygodnia` int(11) NOT NULL DEFAULT 1, // dni tygodnia
  3. `data_poczetek` date NOT NULL DEFAULT '0000-00-00', //DATA od
  4. `data_zakonczenie` date NOT NULL DEFAULT '0000-00-00', //DATA do
  5. `intencja_name` varchar(255) NOT NULL, //nazwa
  6. `intencji` longtext NOT NULL, //pełny tekst
  7. `intencja_data` date NOT NULL DEFAULT '0000-00-00',//jaki dzień
  8. `oznaczenia` tinyint(4) NOT NULL DEFAULT 3, //oznaczenie jaki TO dzień
  9. `status` tinyint(4) NOT NULL DEFAULT 0, // STATUS archiwum
  10. `data` date NOT NULL //sortowanie po archiwum



Tak to wygląda
Go to the top of the page
+Quote Post
nospor
post 13.06.2024, 15:35:39
Post #4





Grupa: Moderatorzy
Postów: 36 519
Pomógł: 6308
Dołączył: 27.12.2004




no dobrze, ale gdzie dane? Czy to ma sie wyswietlac tylko bez danych? tylko daty tygodnia i tydzien?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post 13.06.2024, 15:41:14
Post #5





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Dane mam wyświetlane po tabeli dni_tygodnia zrobiłem je tak

  1. if($data->dni_tygodnia == 1){
  2. $dni_tygodnia="Poniedziałek";
  3. }
  4. if($data->dni_tygodnia == 2){
  5. $dni_tygodnia="Wtorek";
  6. }
  7. if($data->dni_tygodnia == 3){
  8. $dni_tygodnia="Środa";
  9. }
  10. if($data->dni_tygodnia == 4){
  11. $dni_tygodnia="Czwartek";
  12. }
  13. if($data->dni_tygodnia == 5){
  14. $dni_tygodnia="Piątek";
  15. }
  16. if($data->dni_tygodnia == 6){
  17. $dni_tygodnia="Sobota";
  18. }
  19. if($data->dni_tygodnia == 7){
  20. $dni_tygodnia="Niedziela";
  21. }


a tak wygląda wyświetlanie danych daty od do

  1. $data_intencji1 = $this->wpdb->get_results("SELECT data_poczetek, data_zakonczenie FROM ".$this->intencja." WHERE dni_tygodnia='1'");
  2. foreach ($data_intencji1 as $data1) {
  3. $date_start = strtotime($data1->data_poczetek);
  4. $date_end = strtotime($data1->data_zakonczenie);
  5. echo'<h4 style="text-align: center;"><span style="color: #000000;"><strong>Intencje Mszy Świętej<br>
  6. </strong></span></h4>';
  7. echo '<h4 style="text-align: center; margin-bottom: 45px;">
  8. <strong><span style="text-decoration: underline; color: #000000;">' . date('d-m-Y', $date_start) . 'r - ' . date('d-m-Y', $date_end) . 'r </span></strong></h4>';
  9. foreach ($data_intencji as $data) {
  10. //Tu wyśwetla mi pełne dane z tabeli jak
  11.  
  12. dni tygodnia ś tu osadzone
  13. data tygodnia
  14. tytuł
  15. i pełne informacje intencji
  16.  
  17. }
  18.  
  19. }


i chodzi mi o to, żeby wyświetlało cały tydzień osobno po teraz mam ze wyświetla mi to tak

03-06-2024 - 09-06-2024

Poniedziałek 03-06-2024
Wtorek 04-06-2024
Środa 05-06-2024
czwartek 06-06-2024
piątek 07-06-2024
sobota 08-06-2024
Niedziela 09-06-2024
Poniedziałek 10-06-2024
Wtorek 11-06-2024
Środa 12-06-2024
czwartek 13-06-2024
piątek 14-06-2024
sobota 15-06-2024
Niedziela 16-06-2024

Kolejne od 10-06-2024 - 16-06-2024

Poniedziałek 03-06-2024
Wtorek 04-06-2024
Środa 05-06-2024
czwartek 06-06-2024
piątek 07-06-2024
sobota 08-06-2024
Niedziela 09-06-2024
Poniedziałek 10-06-2024
Wtorek 11-06-2024
Środa 12-06-2024
czwartek 13-06-2024
piątek 14-06-2024
sobota 15-06-2024
Niedziela 16-06-2024
Go to the top of the page
+Quote Post
nospor
post 13.06.2024, 15:45:05
Post #6





Grupa: Moderatorzy
Postów: 36 519
Pomógł: 6308
Dołączył: 27.12.2004




Skoro najpierw masz petle, ktora wyswietla
03-06-2024 - 09-06-2024

a dopiero potem petle ktora wyswietla reszte to nei rozumiem czemu sie dziwisz ze masz jak masz

Wyswietlanie
03-06-2024 - 09-06-2024

ma byc w petli ktora wyswietla dane.
Gdy twoje dane beda mialy poniedzialek, to najpierw wyswietl
03-06-2024 - 09-06-2024

i juz. zrobione


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post 13.06.2024, 15:50:09
Post #7





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


A może pokazać na przykładzie questionmark.gif
Go to the top of the page
+Quote Post
nospor
post 13.06.2024, 15:52:29
Post #8





Grupa: Moderatorzy
Postów: 36 519
Pomógł: 6308
Dołączył: 27.12.2004




No ale co na przykladzie? Jak masz poniedzialek to masz wyswietlic daty tygodnia

if($data->dni_tygodnia == 1){
$dni_tygodnia="Poniedziałek";
echo 'TU wyswietl swoje 03-06-2024 - 09-06-2024 rzecz jasna wyliczone na podstawie daty poniedzialkowej';
}


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post 13.06.2024, 15:56:28
Post #9





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Dziękuje za pomoc
Go to the top of the page
+Quote Post

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: 26.09.2024 - 23:07