Chciałbym diva play, po kliknięciu którego wyświetli mi wybrane napisy z bazy
Ale właśnie... Jak zrobić, by row w bazie wyglądał tak jak plik srt, by skrypt wiedział które napisy wyświetlić w której sekundzie?
Oczywiście powinna być tabela napisy z kolumnami takimi jak tytuł i treść, tylko jak zrobić by treść była napisana w taki sposób by było wiadomo w której sekundzie wyświetlić który fragment?
([1:03] napis z minuta i trzy sekundy
[1:04]napis z minuta i cztery sekundy)
Jak to zrobić najprościej?
blooregard
12.10.2011, 15:25:43
Osobna kolumna czas, albo nawet dwie: minuta i sekunda i po tych kolumnach szukać napisów.
No, ok - dzięki, myśle że to będzie dobre, ale co z resztą? Wykorzystać javascript? Jak powinno wyglądać zapytanie trworzące taką tabelę? Wydaje mi się dziwne tworzenie dwóch kolumn minuta i sekunda? Po co?
blooregard
12.10.2011, 16:01:02
Cytat(Tho @ 12.10.2011, 16:52:33 )

No, ok - dzięki, myśle że to będzie dobre, ale co z resztą? Wykorzystać javascript? Jak powinno wyglądać zapytanie trworzące taką tabelę? Wydaje mi się dziwne tworzenie dwóch kolumn minuta i sekunda? Po co?
Po to, że masz dwie oddzielne wartości typu INT, a nie jakieś dziwne varchary z dwukropkami itp., które potem musisz parsować w skrypcie.
A co do reszty: jeśli dobrze zrozumiałem i chcesz "zaciągać" napisy z bazy w trakcie odtwarzania filmu na podstawie aktualnego czasu - to mam pytanie: po co?
Nie lepiej od razu wczytać wszystkie napisy jednym zapytaniem do jakiejś tabeli i potem jechać z tej tabeli?
Chce żeby wyświetlały się w danych sekundach, LIVE, a nie wszystkie naraz z tym że tu chodzi o same napisy, filmu w to nie mieszajmy

. Nie jest konieczne w tym celu JS? Jeśli nie to oczywiście nie trzeba, ma być jak najprościej

.
blooregard
12.10.2011, 16:18:58
W takim wypadku JS będzie faktycznie niezbędny. Musisz napisać funkcję, która asynchronicznie (Ajax) wywołuje skrypt PHP zaczytujący rekord z tabeli z napisami na podstawie przesłanych argumentów (czyli minuty i sekundy filmu) i zwraca napis odpowiadający temu czasowi.
Myślałeś że chce wyświetlić te napisy jako "plakat"?

To po co byłyby mi czasy? Od początku chyba jasno się wyrażałem.

Jeszcze jedno, jakiego typu dla kolumny 'napisy' użyć? char, varchar?
blooregard
12.10.2011, 16:52:07
CHAR to typ danych o stałej długości ciągu, więc VARCHAR będzie sensowniejszy.
Ok, a co z limitem znaków, jeśli tam tych znaków będzie bardzo dużo, co ustawić przy varchar w () ?
sebekzosw
12.10.2011, 19:02:05
pobierasz ajaxem napisy do tablicy, gdzie indeksem tablicy będzie czas w sekundach po czym w js szukasz tablicy z indeksem za pomocą setInterval ustawionym na wykonywanie co sekundę. Jeżeli takowy indeks istnieje w tablicy to wyświetlasz jego wartość (czyli konkretny tekst) w wybranym np divie.
Najlepiej jest dać dane typu TEXT moim zdaniem - CHAR odpada bo muszą mieć konkretną długość znaków, VARCHAR musi mieć limit np 200 znaków - a nie wiadomo czy dana kwestia nie będzie dłuższa niż 200 znaków (trzeba zakładać różne prawdopodobieństwa)
crocodillo
13.10.2011, 07:19:53
Cytat(blooregard @ 12.10.2011, 17:18:58 )

W takim wypadku JS będzie faktycznie niezbędny. Musisz napisać funkcję, która asynchronicznie (Ajax) wywołuje skrypt PHP zaczytujący rekord z tabeli z napisami na podstawie przesłanych argumentów (czyli minuty i sekundy filmu) i zwraca napis odpowiadający temu czasowi.
Z tym ajaxem to trzeba troszkę uważać i pobierać napisy z kilkusekundowym wyprzedzeniem, bo inaczej będą się wyświetlały z opóźnieniem, wszystko zależy od obciążenia sieci. Ja bym raczej sugerował załadowanie wszystkich napisów do tablicy zamiast wykorzystywać do tego ajax, a jeśli napisów jest zbyt dużo, to podzielić je na segmenty i pobierać segmentami, ale to oczywiście już troszeczkę bardziej skomplikowane
pobierać np. pierwsze 200 kwestii i sprawdzić czas, kiedy występuje ostatnia z nich, w 3/4 tego czasu załadować na wszelki wypadek kolejne 200 kwestii i tak dalej
blooregard
13.10.2011, 08:58:10
Cytat(vee @ 13.10.2011, 08:42:01 )

pobierać np. pierwsze 200 kwestii i sprawdzić czas, kiedy występuje ostatnia z nich, w 3/4 tego czasu załadować na wszelki wypadek kolejne 200 kwestii i tak dalej
Takie rozwiązanie jest ok, dopóki przykładowo masz w tablicy napisy do np. pierwszych 20 minut filmu, a user nagle przeskoczy do powiedzmy 25 minuty.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.