Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem Z Sortowaniem W Zapytaniu Do Bazy
pyrek
post
Post #1





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 23.09.2003

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


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

Ten post edytował pyrek 6.09.2004, 12:18:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
anas
post
Post #2





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

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


Hej.

dodaj jeczszcze do zapytania:

  1. GROUP BY topik_id


pozdrawiam.

anas
Go to the top of the page
+Quote Post
pyrek
post
Post #3





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 23.09.2003

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


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!

Ten post edytował pyrek 7.09.2004, 15:39:19
Go to the top of the page
+Quote Post
Parti
post
Post #4





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 22.07.2004

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


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.

Ten post edytował Parti 7.09.2004, 18:57:16
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 - 07:13