Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]5 ostatnich rekordów (po jednym z tabeli)
--Obcy--
post
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ć:
  1. $kategoria = 'kategoria1';
  2.  
  3. (...)WHERE kategoria = '$kategoria' (...)


Czy dobrze kombinuję? ;> A może jakiś lepszy i wydajniejszy sposób znacie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bostaf
post
Post #2





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Składni INSERT używa się w inny sposób:

INSERT INTO nazwa_tabeli [(nazwa_kolumny [, nazwa_kolumny, ...])] VALUES (dane, dane, ...)

Nazwy kolumn w nawiasie, po nazwie tabeli, są opcjonalne, ale warto je precyzować, dla czytelności i na wszelki wypadek, gdyby się w przyszłości kolejność i ilość kolumn w tabeli zmieniła.
Do każdej tabeli INSERTuje się osobno:
  1. INSERT INTO posty(tytul) VALUES ("Tytuł mojego posta"); -- nie wymuszam identyfikatora id_posta, zakładam że to jest AUTO_INCREMENT
  2. SET @id_posta = LAST_INSERT_ID();
  3. INSERT INTO post_kategoria(id_posta, id_kategoria) VALUES (@id_posta, 1), (@id_posta, 3), (@id_posta, 4);

To jeden ze sposobów. W PHP też można bez dodatkowych zapytań sprawdzić wartość ostatnio wygenerowanego auto incrementem identyfikatora. Albo zrobić to dodatkowe zapytanie żeby to sprawdzić. Najlepiej różne opcje ćwiczyć i zobaczyć, z którą się mi najwygodniej pracuje.
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: 16.10.2025 - 18:41