Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Wyświetlanie newsów według pewnej kolejności kategorii
Qrzysio
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 22.06.2003
Skąd: Ostrołęka

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


Witam

Tworze system newsów oparty o MySQL. Chciałbym w jednym zapytaniu wyciągnąć rekordy w ten sposób, aby najpierw wyświetliły się newsy z ktegorii "HOT", później z kategorii "wiadomości", a następnie z kategorii "Sport". Każda kategoria ma oczywiście swój ID, a oprócz tego przy wyświetlaniu newsów zliczam aktualną liczbę komentarzy pod każdym artykułem - to już zrobiłem za pomocą LEFT JOIN. Nie wiem niestety jak wyświetlać w jednym zapytaniu rekordy wg kategorii tak jak mi się podoba. Poniżej zapytanie, które już stworzyłem:

  1. SELECT a.*, count(b.com_id) as komentarze
  2. FROM $tbl_news AS a
  3. LEFT JOIN $tbl_komentarze as b ON (b.news_id=a.dodano)
  4. WHERE a.aktywacja BETWEEN '1' AND '$teraz' AND a.cat_id = '$cat_id'
  5. GROUP BY a.dodano


Będę wdzięczny za wszelkie sugestie.


--------------------
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
thek
post
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




Odpowiedni ORDER BY. Jeśli to liczby kolejne, gdzie numery kategorii odpowiadają hot > wiadomosci > sport, to po prostu

WHERE nazwa_kolumny_kategorii IN (id_hot, id_wiadomosci, id_sport) ORDER BY nazwa_kolumny_kategorii DESC.

A jeśli to jakieś losowe, niekoniecznie określone, liczby to:

ORDER BY (nazwa_kolumny_kategorii, id_hot, id_wiadomosci, id_sport)


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
wry
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 3
Dołączył: 9.06.2007

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


jest cos takeigo jak order by filed dziala to tak
order by field(categoryid, 3, 1, 2)
to ci posortuje po kolumnie categoryid i wyswietli najpierw wpisy z id kategorii 3 pozniej 1 a pozniej 2


--------------------
Go to the top of the page
+Quote Post
koderrr
post
Post #4





Grupa: Zarejestrowani
Postów: 255
Pomógł: 16
Dołączył: 4.07.2007

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


mozesz tez zrobic petle a w niej kod wyswietlajacy newsy, nazwy katergori umiescic w tablicy w odpowiednej kolejnosci

Go to the top of the page
+Quote Post
Qrzysio
post
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 22.06.2003
Skąd: Ostrołęka

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


Super rozwiązanie, dzięki


--------------------
Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 20:19