ForumCała strona

Nawigacja

Aktualnie online

Gości online: 13

Użytkowników online: 0

Łącznie użytkowników: 25,386
Najnowszy użytkownik: Hisfatt

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

Zbigniew@
28.04.2024 21:33:51
Nareszcie udało się .V9 Document checking completed. No errors or warnings to show.

JazOOn
27.04.2024 21:35:25
Jazda. Udało się. Firma rusza.

Zbigniew@
01.04.2024 12:28:45
Wszystkiego najlepszego z okazji świąt.

JazOOn
28.02.2024 19:25:31
ja zostałem przy fusionie ale nazywa się 360. Projektowanie i druk 3d...

MajsterBieda
25.02.2024 00:12:42
Ponad 20 lat .... tosz to sioook panie.... Grin

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
Warunki sprawdzające poprawność godziny audycji - nie działają
zezol
Witam :)

Z tejże okazji, że będę rozkręcał radio internetowe piszę wtyczkę ramówki radia. W sumie można powiedzieć, że skończyłem. No ale przejdę do sedna.
Chcę zrobić takie zabezpieczenie przed dodaniem audycji, która miałaby być w czasie, w którym już jest (ktoś wcześniej dodał) jakaś audycja. Przykładowo:
Istnieje już audycja 15:00 - 16:00. I warunki mają być tak postawione, aby nie można było dodać audycji której godzina koliduje z inną, tzn.:
- 15:30 - 17:00
- 14:30 - 15:30
- 15:15 - 15:45
Co do tej częścji kodu, to wzorowałem się na gotowym skrypcie ramCast. Tam to zabezpieczenie jak najbardziej działa, lecz w moim skrypcie, po małym dostosowaniu - nie mogę dojść dlaczego - nie działa.

Kod który za to odpowiada:
Pobierz kod źródłowy  Rozwiń Kod źródłowy PHP

Do tego mała legenda:
$odh - godzina rozpoczęcia audycji z POST
$odm - minuta rozpoczęcia audycji z POST
$doh - godzina zakończenia audycji z POST
$dom - minuta zakończenia audycji z POST

Gdyby ktoś znalazł przez co te warunki mogą nie działać albo wpadł na inny sposób takiego zabezpieczenia to prosiłbym pisać. Ktoś mi radził aby zamiast czterech pól odpowiadających za godzinę użyć daty unixowej, ale teraz już nie mam ochoty zmieniać tyle. W sumie to ten wyżej przedstawiony sposób powinien działać, więc gdzieś może jest jakiś byk.
 
Wścibski Gość
Dodany dnia 29.04.2024 03:45:42
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
Grzes
Po pierwsze zapytaniem uzyskujesz tylko jeden rekord a nie wszystkie dla całego dnia. Zamiast for skorzystaj z while.

Pobierz kod źródłowy  Rozwiń Kod źródłowy PHP


Druga sprawa, nie podoba mi się to łączenie liczb: $dane[$i]['odh'].".".$dane[$i]['odm']
W ten sposób uzyskasz łańcuch tekstowy zamiast wartości liczbowej z kropką. Masz dwa wyjścia, widzę że chcesz godzinę zapisać w formie liczby z przecinkiem. Spróbuj to tak zapisać:
$dane[$i]['odh']+($dane[$i]['odm']/10)

Dla 1h i 20min otrzymasz liczbę 1.2

Albo zamień to na minuty.
($dane[$i]['odh']*60)+$dane[$i]['odm']


i je porównuj. Uzyskasz coś podobnego do unixowego znacznika czasu ale będą to minuty liczone od godz 0:00 aktualnego dnia.
Często najmądrzejszą odpowiedzią jest milczenie krzywy.gif
 
zezol
Wielkie Ci dzięki @Grzes! Męczyłem się z tym dość długo - z marnym efektem. A tu wystarczyło zmienić rodzaj pętli i po krzyku... Pfft
PS. Co do łączenia liczb, to wybrałem ten 1. sposób.

W najbliższym czasie możecie się spodziewać nowej wtyczki ramówki radia. W sumie będzie to pierwsza taka wtyczka dla Fusiona Smile.
 
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl