Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Wyświetlanie newsów według pewnej kolejności kategorii
Forum PHP.pl > Forum > PHP
Qrzysio
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.
thek
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)
wry
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
koderrr
mozesz tez zrobic petle a w niej kod wyswietlajacy newsy, nazwy katergori umiescic w tablicy w odpowiednej kolejnosci

Qrzysio
Super rozwiązanie, dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.