![]() |
![]() |
--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? |
|
|
![]() |
--Obcy-- |
![]()
Post
#2
|
Goście ![]() |
Czy dobrze rozumiem logikę?
Dodaję newsa wybierając kategorię1 W tabeli 'newsy' wszystko ląduje na swoje miejsce (pomijając datę modyfikacji - ty jest pusto) Jednocześnie do tabeli 'news_kategoria' ląduje takie samo id_newsa jak w tabeli 'newsy' oraz id_kategoria takie samo jak w tabeli 'kategorie' Ale jak odwołać się do tych 3 tabel? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Czy dobrze rozumiem logikę? Dodaję newsa wybierając kategorię1 W tabeli 'newsy' wszystko ląduje na swoje miejsce (pomijając datę modyfikacji - ty jest pusto) Jednocześnie do tabeli 'news_kategoria' ląduje takie samo id_newsa jak w tabeli 'newsy' oraz id_kategoria takie samo jak w tabeli 'kategorie' Tak. Dokładnie tak. Dodając newsa możesz wybrać nawet więcej niż jedną kategorię, ale to nie jest wymóg. Brak kategorii też powinien być dopuszczalny. Powinna być po prostu możliwość edytowania kategorii (np dla admina albo moderatorów albo autora newsa). Ale jak odwołać się do tych 3 tabel? Trzeba je łączyć składnią językową JOIN. Na przykład, żeby pobrać 2 ostatnie newsy posortowanye po dacie malejąco, razem ze wszystkimi kategoriami, do których każdy jest przypisany:
W wyniku można dostać coś takiego: Kod id_newsa | tytul | kategorie ---------+--------------------------------+-------------------------- 123 | Mój sto dwudziesty trzeci news | komputery,nauka 2 | Teścik | testy,programowanie,mysql A taki wynik można elegancko obrobić w PHP. JOINy są dla niektórych na początku trudne do ogarnięcia, zwłaszcza że jeden cel można czasami osiągnąć kilkoma sposobami, ale trening czyni mistrza ;) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 01:35 |