![]() |
![]() |
--Obcy-- |
![]()
Post
#1
|
Goście ![]() |
Witam.
Ostatnio napisałem prosty system newsów, wszystko jest ok ale... Mam pięć 'kategorii' newsów rozmieszczonych w tabelach odpowiadających kategorii. Na podstronie danej kategorii wyświetlam 10 ostatnich... Ale chciałbym na stronie głównej umieścić 5 ostatnich ogólnie, czyli ze wszystkich kategorii. Myślałem, żeby zrobić po prostu: ostatni z 1 kat. ostatni z 2 kat. ostatni z 3 kat. ostatni z 4 kat. ostatni z 5 kat. Ale to odpada bo jest to dosyć 'sztywne' i w ogóle nie o to chodzi. Dodając 5 newsów do kat. 3 (do reszty nic) na głównej powinno wyświetlić się te 5 nowo dodanych. PS. Pisząc posta wpadłem na pomysł (IMG:style_emoticons/default/smile.gif) (Forum pomaga samo z siebie bez interwencji użytkowników (IMG:style_emoticons/default/biggrin.gif) ) Można przecież wszystkie newsy upakować w jednej tabeli i stworzyć kolumnę 'kategoria'. Później przy pobieraniu tych 5-ciu darować sobie WHERE i jest 5 ostatnich (IMG:style_emoticons/default/smile.gif) A przy pobieraniu rekordów dla danej kategorii zastosować:
Czy dobrze kombinuję? ;> A może jakiś lepszy i wydajniejszy sposób znacie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dobrze, ale to dopiero początek kombinowania (IMG:style_emoticons/default/wink.gif) Tak było 20 lat temu, tzn. jeden news można dopasować do jednej kategorii. Teraz kategorie nazywa się tagami i do jednego newsa/postu/artykułu przypisuje się dowolną ilość kategorii/tagów. Potrzebujesz 3 tabele:
Ta trzecia tabela służy do łączenia (za pomocą identyfikatorów) newsów z kategoriami/tagami. Żeby wyciągnąć z tabeli 5 ostatnich newsów sortujesz po dacie malejąco; ORDER BY `data_dodania` DESC LIMIT 5. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 17:45 |