Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL]Join = za dużo wyników
HgReed
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 13.11.2011

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


Witam.
Mam sobie 2 bazy :
1) articles
  1. article_id //numer artykułu
  2. title //tytuł
  3. body //treść
  4. date //DATA dodania
  5. category_id //id kategorii
  6. comment_num //liczba komentarzy

2) comments
  1. id //numer komentarza
  2. article_id //numer artykułu, którego jest ten komentarz
  3. author //autor
  4. date //DATA dodania
  5. body //treść

I mam pytanie :
Jak wyjąć wszystkie komentarze po id artykułu?
Takie zapytanie :
  1. SELECT * FROM `articles` JOIN `comments` USING (article_id)

Daje mi :
  1. [article_id] => 2 //id artykułu
  2. [title] => Lorem... //tytuł artykułu
  3. [body] => to jest komentarz //treść komentarza
  4. [date] => 2011-12-20 //data dodania komentarza
  5. [category_id] => 1 //kategoria artykułu
  6. [comment_num] => 1 //l. kom. artykułu
  7. [id] => 1
  8. [author] => nikt

A takie zapytanie :
  1. SELECT * FROM `comments` JOIN `articles` USING (article_id)

Daje :
  1. [article_id] => 2 //id artykułu
  2. [id] => 1 //id komentarza
  3. [author] => nikt //autor komentarza
  4. [date] => 2011-12-07 //data dodania komentarza
  5. [body] => Lorem ipsum... //treść artykułu
  6. [title] => Lorem... //tytuł artykułu
  7. [category_id] => 1 //kategoria artykułu
  8. [comment_num] => //l. kom. artykułu

(wszystkich kolejnych komentarzy nie wyświetla)

Albo chociaż jak pokazać tylko dane komentarza?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wujek2009
post
Post #2





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

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


Najpierw pobierasz artykuł i później dopiero zapytanie związane z wyświetlaniem komentarzy (nie razem)
czyli na przykład:
  1. // pobierany dane artykułu i sprawdzamy czy w ogóle istnieje, itd
  2. $row = pobierzArtykul($_GET['id']);
  3.  
  4. // komentarze, lista
  5. if ( $row['comment_num'] > 0 )
  6. {
  7. $comments = pobierzKomentarze($_GET['id']);
  8.  
  9. foreach ( $comments as $k => $v )
  10. {
  11. // wyświetlasz liste komentarzy
  12. }
  13.  
  14. }
  15. else
  16. echo 'brak komentarzy - dodaj nowy';


taki mniej więcej zarys
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 04:52