Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sortowanie według godzin otwarcia
piotr485
post
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

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


Mam firmy w tabeli. [id, nazwa_firmy]
Posiadają one godziny otwarcia w osobnej tabeli. (id_firmy, id_dzien, od, do)

Chciałbym sortować zaczynając od firm które mają najwięcej czasu do zamknięcia a potem firmy które mają najmniej czasu do otwarcia. Nie mam pojecia jak to rozgryźć i jeszcze jak mi dojdzie tabela wyjatkow, zastanawiam sie czy jest to mozliwe do skonstruowania z poziomu zapytania czy raczej powinienem kombinować to zrobić najpierw za pomocą skryptu php ?
Go to the top of the page
+Quote Post
modern-web
post
Post #2





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


W jakim formacie zapisane masz godziny? Problem wydaje się być prosty do rozwiązania (IMG:style_emoticons/default/smile.gif)

Ten post edytował modern-web 18.10.2012, 19:13:10
Go to the top of the page
+Quote Post
piotr485
post
Post #3





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

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


Cytat(modern-web @ 18.10.2012, 20:12:55 ) *
W jakim formacie zapisane masz godziny? Problem wydaje się być prosty do rozwiązania (IMG:style_emoticons/default/smile.gif)


w formacie "10:30:00"
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. SELECT
  2. p.id
  3. FROM
  4. sklep AS s
  5. LEFT JOIN produkt AS p ON (p.id_sklep = s.id_sklep)
  6. WHERE
  7. s.id_sklep > 5
  8. ORDER BY p.id DESC, s.id_sklep ASC


Mam nadzieję, że załapiesz o co chodzi - a jak nie to odsyłam do googla pod hasłami "mysql ORDER BY" i "mysql JOIN"
Go to the top of the page
+Quote Post
Noidea
post
Post #5





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


Potrzebujesz trzy informacje na temat każdej firmy:
1. Czy firma jest aktualnie otwarta (czyli czy aktualny czas mieści się pomiędzy wartościami OD i DO dla danego dnia)
2. Czas do zamknięcia (różnica pomiędzy DO a aktualnym czasem)
3. Czas do otwarcia (różnica pomiędzy północą a aktualnym czasem + różnica pomiędzy OD a północą + 24h za każdy pełen dzień w którym firma nie pracuje, np. jeśli aktualnie jest piątek 20:00, a firma będzie otwarta w poniedziałek o 6:00, to ma ci wyjść: 4h + 2*24h + 6h) – ten punkt prawdopodobnie będzie najtrudniej napisać

Następnie dla otwartych firm sortujesz po wartości wyliczonej w punkcie 2., a dla zamkniętych po wartości wyliczonej w punkcie 3. (używając w tym celu konstrukcji CASE w ORDER BY)
Go to the top of the page
+Quote Post

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: 5.10.2025 - 11:35