![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam w innym temacie pytalem jak zminiac wiersze, ale niestety nie uzyskałem odpowiedzi dlatego wpadłem na inny pomysł tylko potrzebuję jedną informację.
wyswietlanie tabeli polega na:
no i jest fajnie bo wyświetla sie tabela. Świetnie tylko że ja potrzebuje z wiersza poniżej zamienić wiersz[1]. czyli jest a a a b b b a ma być b a a a b b Czy jest jakaś możliwość w php zrobienia czegoś takiego, ale nie poprzez sortowanie? Ten post edytował neo1986kk 22.10.2009, 09:05:18 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Musisz policzyć róznicę czasu pomiędzy startem i końcem. Bazy mają funkcje operujące na czasie. Przejrzyj sobie odpowiedni dział manuala. Mając już ją wybierasz rekordy jakie podpadają do zmiany. Gdy masz tylko zmianę o pozycję w górę lub dół to nie problem. Nawet się nieco upraszcza, bo następuje wymiana pewnych danych (IMG:style_emoticons/default/winksmiley.jpg)
Przykład wymiany 2 z 3, zwróć uwagę na kolory: 1 12:00 - 15:00 2 15:00 - 19:00 3 19:00 - 20:00 1 12:00 - 15:00 3 15:00 - 16:00 2 16:00 - 20:00 Jak widzisz pomarańcz się nie zmienił, a niebieski to czas startu plus trwanie priorytetu. Ostatecznie więc priorytet ma godziny: Nowy_start_priorytetu = start_zadania_wcześniejszego, Nowy_koniec_priorytetu = start_zadania_wcześniejszego + czas trwania_priorytetu Nowy_start_przesuniętego = Nowy_start_przesuniętego + czas_trwania_priorytetu, Nowy_koniec_przesuniętego = Koniec_starego_priorytetu Zauważ, że godziny 16 mogą być liczone w różny sposób (IMG:style_emoticons/default/winksmiley.jpg) A to nie jedyne sposoby. Jest jeszcze co najmniej jedna w mojej głowie liczona jako różnica czasów pomiędzy końcami starymi. Może więc ta godzina być wyliczona na kilka sposobów, a potem tylko użyć UPDATE na obu wierszach (IMG:style_emoticons/default/smile.gif) @UP: To zadziała, ale update rekordów musisz robić zaraz po zmianie pozycji wierszy, a nie najpierw porobić zmiany, a potem dopiero UPDATE. Baza musi się aktualizować "w locie", nie czekając na Submit. Linki UP i DOWN muszą wysyłać te informacje do bazy o przesunięciach, dzięki czemu one się przesuną. Zauważ, że Twój "nie działający przypadek" nic nie zmienia. Nie czytamy bowiem po Id, ale po tablicy sortowanej według godziny (i ewentualnie daty) startu zadań. Nie przejmujemy się żadnym id. Po zmianie zadań sortowanie odbywa się według nowych godzin już, więc id mogą być przemieszane, ale godziny są już aktualne. Znajomość id jest więc zbędna tak naprawdę. Co najwyżej się przyda przy UPDATE. Ale czy rekordy te mają id różne o 1 czy 10 to już bez znaczenia. To godzina się liczy, a nie id przy sortowaniu rekordów. Ten post edytował thek 22.10.2009, 10:53:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 23:48 |