Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem Z Sortowaniem W Zapytaniu Do Bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
pyrek
Witam mam taki zapisa zapytania do bazy:

  1. <?php
  2. $wynikdd = mysql_query (&#092;"SELECT *   FROM posts  ORDER BY post_time   DESC;\") or
  3. die (&#092;"błąd w pytaniu\");
  4. while ($rekorddd = mysql_fetch_array ($wynikdd)){
  5. ?>


jednak w bazie mam takie wpisy:

post_id / topik_id itd.
1 / 4
2 / 8
3 / 4
4 / 7
5 / 4
itd

jakie mam zrobić zapytanie do bazy żeby pobierał mi wpisy ale żeby topik_id się nie powtarzał (np 4 tylko raz potem ignorował) czyli żeby pobrał mi tak te wpisy:
post_id / topik_id
1 / 4
2 / 8
4 / 7

proszę o pomoc bo jużnie daje sobie rady sad.gif
anas
Hej.

dodaj jeczszcze do zapytania:

  1. GROUP BY topik_id


pozdrawiam.

anas
pyrek
powiedzcie mi czemu się tak dzieje
  1. <?php
  2.  
  3. $wynik2 = mysql_query (&#092;"SELECT * FROM phpbb_posts     GROUP BY topic_id  ORDER BY post_time DESC LIMIT $limit;\") or
  4. die (&#092;"błąd w pytaniu\");
  5. while ($rekord2 = mysql_fetch_array ($wynik2)){
  6. ?>

robie skrypt który pobierze mi najnowsze wpisy z bazy forum jednak
wybiera mi wszysto ale nie pobiera według najświeższej daty czyli najnowszej!
Parti
Cytat(pyrek @ 2004-09-07 16:28:04)
powiedzcie mi czemu się tak dzieje

Ponieważ rekordy najpierw są grupowane wg topic_id, a potem sortowane wg daty ale tylko w obrębie swojej grupy.

Chcesz uzyskać najnowszy post z każdego tematu (na koniec posortowane wg czasu):
  1. SELECT * FROM phpbb_posts AS p1 WHERE post_time = (SELECT max(p2.post_time) FROM phpbb_posts AS p2 WHERE p1.topic_id = p2.topic_id) ORDER BY p1.post_time DESC


Jak widać jest podzapytanie, więc niestety tylko MySQL 4.1.x. Tutaj znajdziesz opis jak uzyskać to na starszych wersjach.
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.