Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Cykliczność wdarzeń
lukaszgolder
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 17
Dołączył: 2.04.2008
Skąd: z Zabrza

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


Mam w bazie danych tabele z wydarzeniami, niektóre z nich są cykliczne (co tydzień, co 2 tygodnie lub co miesiąc), a niektóre jednorazowe.

Chcę pobrać zbliżające się imprezy i posortować je od tych najbliższych do tych najdalszych.

Ma ktoś pomysł jak to zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukaszgolder
post
Post #2





Grupa: Zarejestrowani
Postów: 141
Pomógł: 17
Dołączył: 2.04.2008
Skąd: z Zabrza

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


Zrobiłem coś takiego, ale to nie do końca działa tak jak powinno.
  1. SELECT (
  2.  
  3. CASE WHEN (
  4. `Event`.`calendar_recurrent` = 0.25
  5. )
  6. THEN TIMESTAMPADD( WEEK, CEIL( (
  7. UNIX_TIMESTAMP( ) - UNIX_TIMESTAMP( `Event`.`datetime` ) ) /604800 ) , `Event`.`datetime`
  8. )
  9. WHEN (
  10. `Event`.`calendar_recurrent` = 0.5
  11. )
  12. THEN TIMESTAMPADD( WEEK, CEIL( (
  13. UNIX_TIMESTAMP( ) - UNIX_TIMESTAMP( `Event`.`datetime` ) ) /1209600 ) *2, `Event`.`datetime`
  14. )
  15. WHEN (
  16. `Event`.`calendar_recurrent` =1
  17. AND MONTH( NOW( ) ) <10
  18. )
  19. THEN CONCAT( YEAR( NOW( ) ) , "-", "0", MONTH( NOW( ) ) , "-", DATE_FORMAT( `Event`.`datetime` , "%d %H:%i:%s" ) )
  20. ELSE CONCAT( YEAR( NOW( ) ) , "-", MONTH( NOW( ) ) , "-", DATE_FORMAT( `Event`.`datetime` , "%d %H:%i:%s" ) )
  21. END
  22. ) AS `newdatetime` , `Event`.`id` , `Event`.`name` , `Event`.`image` , `Event`.`desc` , `Club`.`name`
  23. FROM `events` AS `Event`
  24. LEFT JOIN `clubs` AS `Club` ON ( `Event`.`club_id` = `Club`.`id` )
  25. WHERE (
  26. (
  27. `Event`.`datetime` > NOW( )
  28. )
  29. OR (
  30. `Event`.`calendar_recurrent` >0
  31. )
  32. )
  33. ORDER BY `newdatetime` ASC
  34. LIMIT 4


Generalnie chodzi o to, że ma pobrać z bazy danych najbliższe imprezy (bez tych co już się odbyły), no i posortować je od najbliższych do najdalszych. W przypadku imprez cyklicznych musi sobie obliczyć nową datę tej imprezy, no ale nie jak wrzucam newdatetime do warunku to mi wyskakuje błąd że nie ma takiego pola. Jak chcę dać AS `Event`.`newdatetime` to też wyskakuje błąd.
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: 3.10.2025 - 08:38