Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> relatywne sortowanie mysql
karis
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

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


chcę pobrać top 5 komentowanych newsów

mam tabele newsy a w niej pola id, nazwa, tresc

oraz tabele: newsy_komentarze o polach: id, id_newsa, tresc

chciałbym jakoś pobrać wg najwięcej dodanych dla danego newsa

prosze o sugestie jak to zrobic
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Noidea
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


select z news_komentarze pobierający id_newsa i COUNT(*) as ilosc_komentarzy pogrupowany po id_newsa. Do niego inner joinem przyłącz id, nazwę i treść z tabeli news. Całość posortuj malejąco po ilosc_komentarzy i dodaj LIMIT 5
Go to the top of the page
+Quote Post
karis
post
Post #3





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

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


mógłbyś mi napisać to zapytanie, bo mam kłopot z INNER JOIN
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Pokaz kod co juz napisales i opisz dokladniej na czym klopot polega
Go to the top of the page
+Quote Post
karis
post
Post #5





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

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


  1. $zapytanie = mysql_query("
  2. SELECT
  3. ".prefix."newsy_komentarze.id_newsa, COUNT(*) as ilosc_komentarzy
  4. FROM
  5. ".prefix."newsy_komentarze
  6. GROUP BY
  7. id_newsa
  8. INNER JOIN
  9. ".prefix."newsy
  10. ON
  11. ".prefix."newsy_komentarze.id_newsa=".prefix."newsy.id
  12. ORDER BY
  13. ilosc_komentarzy DESC
  14. LIMIT 5
  15. ");


dostaję taki komunikat:


Something is wrong in your syntax obok 'INNER JOIN strona_newsy ON strona_newsy_komentarze.id_newsa=strona_ar' w linii 7



Ten post edytował karis 11.01.2011, 13:30:38
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Tak to jest jak sie nie patrzy na skladnie w manualu.
Najpier INNER potem GROUP BY
Go to the top of the page
+Quote Post
karis
post
Post #7





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

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


Dzięki. A jeszcze gdybyś mi napisał jak dołączyć w INNER pola z tytułem newsa bo na razie dostaje w print_r same wartości int kluczy
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




bo w SELECT mowisz ze chcesz jedynie ID i ilosc. Dodaj do SELECT tytul to bedziesz mial i tytul.

Jak mowisz w sklepie poprosze mleko a w myslach dodajesz i chleb to sprzedawca da ci mleko i chleb czy samo mleko? (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
karis
post
Post #9





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

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


nie no wiem tylko poprzedni user polecił mi tak zrobić

ale zauważ, że w tabeli newsy_komentarze nie ma pola nazwa bo ono jest w tabeli newsy

i nie wiem jak wyświetlić te nazwy artykułów

Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




No ale przeciez tabele newsow joinujesz wiec ją masz w zapytaniu. Nie ma wiec zadnego problemu
Go to the top of the page
+Quote Post

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: 24.12.2025 - 09:42