Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql][php] sortowanie
Dynuel
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 27.12.2003

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


Problem jest taki, mam taką tabelę:
  1. id, kategoria, DATA, godzina, jezyk, tytul, link
  2. 1, 27, 2007-11-02, 21:34:57, 1, Tytuł..., www....

i teraz chciałbym zrobić możliwość łączenia różnych wpisów, jako duplikaty, tak by były one w jednej grupie podczas listowania całej tabeli, np:
  • ...
  • wpis
    • powiązany wpis
    • powiązany wpis
    • powiązany wpis
  • jakiś wpis
  • jakiś wpis
  • jakiś wpis
  • ...
najlepszym a właściwie jedynym sposobem (na który wpadłem) jest wprowadzenie nowego pola 'duplikat'
  1. id, DUPLIKAT, kategoria, DATA, godzina, jezyk, tytul, link

które normalnie będzie puste (jeżeli takowych duplikatów nie będzie) a jeżeli będą to w dane pole (we wszystkich rekordach) zostanie wpisany ten sam unikalny klusz ( int )

to jeszcze jest ok, tylko problem pojawia się gdy bym chciał taką tablicę wylistować (sortując według daty i godziny)

np są takie wpisy:

  1. id, duplikat, kategoria, DATA, godzina, jezyk, tytul, link
  2. 1, 0, 27, 2007-11-02, 11:00:00, 1, coś tam, www...
  3. 2, 1, 27, 2007-11-02, 12:00:00, 1, wydarzenie1, www...
  4. 3, 0, 27, 2007-11-02, 13:00:00, 1, cos tam, www...
  5. 5, 1, 27, 2007-11-02, 15:00:00, 1, wydarzenie1, www...
  6. 6, 0, 27, 2007-11-02, 16:00:00, 1, cos tam, www...
  7. 7, 1, 27, 2007-11-02, 17:00:00, 1, wydarzenie1, www...
  8. 9, 0, 27, 2007-11-02, 19:00:00, 1, cos tam, www...

tutaj od razu odwrócę kolejność (sortując po DACIE i GODZINIE) by było łatwiejsze porównanie

  1. id, duplikat, kategoria, DATA, godzina, jezyk, tytul, link
  2. 9, 0, 27, 2007-11-02, 19:00:00, 1, cos tam, www...
  3. 7, 1, 27, 2007-11-02, 17:00:00, 1, wydarzenie1, www...
  4. 6, 0, 27, 2007-11-02, 16:00:00, 1, cos tam, www...
  5. 5, 1, 27, 2007-11-02, 15:00:00, 1, wydarzenie1, www...
  6. 3, 0, 27, 2007-11-02, 13:00:00, 1, cos tam, www...
  7. 2, 1, 27, 2007-11-02, 12:00:00, 1, wydarzenie1, www...
  8. 1, 0, 27, 2007-11-02, 11:00:00, 1, coś tam, www...

tak aby duplikaty były połaczone w jedną grupę oraz aby była ona wyświetlona na miejscu PIERWSZEGO elementu

z grupy (tak że niby dodaje nowy wpis, od razu zaznaczając do jakiej grupy ma należeć, a cała grupa pójdziedo góry i zostanie wyświetlona pod najnowszym wpisem z tej grupy)

  1. id, duplikat, kategoria, DATA, godzina, jezyk, tytul, link
  2. 9, 0, 27, 2007-11-02, 19:00:00, 1, cos tam, www...
  3. 7, 1, 27, 2007-11-02, 17:00:00, 1, wydarzenie1, www...
  4. 5, 1, 27, 2007-11-02, 15:00:00, 1, wydarzenie1, www...
  5. 2, 1, 27, 2007-11-02, 12:00:00, 1, wydarzenie1, www...
  6. 6, 0, 27, 2007-11-02, 16:00:00, 1, cos tam, www...
  7. 3, 0, 27, 2007-11-02, 13:00:00, 1, cos tam, www...
  8. 1, 0, 27, 2007-11-02, 11:00:00, 1, coś tam, www...

oraz myśle że dużo trudniejsza opcja tak aby grupa była wyświetlona na miejscu OSTATNIEGO elementu z grupy (tak że nieby dodaje nowy wpis, od razu zaznaczając do jakiej grupy ma należeć, i ona (oraz reszta elementów z grupy) zostaje wyświetlona pod pierwszym elementem z grupy, ze całość zostaje na miejsc najwcześniejszego wpisu)

  1. id, duplikat, kategoria, DATA, godzina, jezyk, tytul, link
  2. 9, 0, 27, 2007-11-02, 19:00:00, 1, cos tam, www...
  3. 6, 0, 27, 2007-11-02, 16:00:00, 1, cos tam, www...
  4. 3, 0, 27, 2007-11-02, 13:00:00, 1, cos tam, www...
  5. 2, 1, 27, 2007-11-02, 12:00:00, 1, wydarzenie1, www...
  6. 5, 1, 27, 2007-11-02, 15:00:00, 1, wydarzenie1, www...
  7. 7, 1, 27, 2007-11-02, 17:00:00, 1, wydarzenie1, www...
  8. 1, 0, 27, 2007-11-02, 11:00:00, 1, coś tam, www...

Mam nadzieję że ktokolwiek mnie choć troche zrozumiał, nie prosze o gotowe rozwiązanie, jedynie pomoc i nakierowanie mnie, gdyż obecnie nie mam pojęcia jak to zrobić.

myślałem o jakimś użyciu DISTINCT duplikat, lub jakim kolwiek sposobie by z rekordów usunąć duplikaty (zostawić tylko jeden pierwszy bądź ostatni) i gdy w wynikach na niego na potkam, to wtedy wczytać reszte, aczkolwiek distinct niestety nie działa w ten sposób..

Ten post edytował Dynuel 1.12.2007, 22:00:21
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: 25.08.2025 - 14:44