Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]Komentarze
Forum PHP.pl > Forum > Przedszkole
Lee
Jeżeli dodaje komenta do newsa(tabela main_news) o id=1 to w tabeli main_comments pole nid przybiera wartrosc id tego newsa czyli 1 i teraz myślę jak zrobić:

1. żeby wyświetlało mi ile jest komentów do danego newsa przy danym newsie, a nie przy wszystkich
2. jak zrobić, żeby pole nid(main_comments) przybierało id newsa (main_news)

pomożecie ?

ad.1)coś mi świta jak to ma wyglądać, ale nie wiem jak to zrealizować...

Update: okej wymyśliłem coś, do tabeli main_news dodałem pole "comments", wartośc tego pola będzie równa, jak by to ująć, temu ile razy powtarza się dana wartośc w polu "nid" w tabeli main_comments, tylko nie wiem jak zrobić, żeby powtarzające się wartości z pola "nid" sumowało, chyba łapiecie tiredsmiley.gif rolleyes.gif
AxZx
Kod
NEWSY
news_id
news_data
news_tytul
news_tresc

KOMENTARZE
kom_id
kom_data
kom_autor
kom_tresc
news_id



ile komentarzy danego newsa:
  1. SELECT count(*) AS ile
  2. FROM komentarze
  3. WHERE news_id = 1


a tak wogole to z czym masz problem?
Lee
napisałem z czym mam problem winksmiley.jpg ten pkt 1 i 2 smile.gif
nie kapuje o co chodzi, mógłbyś to przetłumaczyć na coś typu

$zapytanie = "SELECT....";
$wykonaj = mysql_query($zapytanie); itp ? szczególnie to CODE, bo SQL to jeszcze coś się domyśle...
Michasko
ekhem smile.gif to są raczej struktury tabeli ;] jakie pola mają w nich być smile.gif
Lee
yyy....questionmark.gif wytłumaczcie mi o co chodzi z tym

Kod
NEWSY
news_id
news_data
news_tytul
news_tresc

KOMENTARZE
kom_id
kom_data
kom_autor
kom_tresc
news_id


ja mam u siebie w bazie danych

Kod
MAIN_NEWS
id
title
tresc
czytaj
comments (liczba komentarzy)
author
avatar

MAIN_COMMENTS
id
nid (= id z MAIN_NEWS)
title
tresc
author
email
AxZx
no to w czym masz problem? bo nie rozumiem punktu 1 i 2 tongue.gif

jezeli chcesz policzyc ile komentarzy jest do konkretnego newsa to dajesz

  1. SELECT count(*) AS ile
  2. FROM MAIN_COMMENTS
  3. WHERE nid = 2


a jak zrobic zeby przybieralo id newsa?
no to w formularzu komentarza dajesz ukryte pole z id newsa, i to id newsa dodajesz do tabeli do kolumny nid
Lee
ale to
  1. SELECT count(*) AS ile
  2. FROM MAIN_COMMENTS
  3. WHERE nid = 2


gdzie mam walnąc, w phpmyadminie ? czy jako

  1. <?php
  2. $zapytanie = "select count(*) as ile from MAIN_COMMENTS where nid = 2";
  3. $wykonaj = mysq_query($zapytanie);
  4.  
  5. ?>


?
AxZx
to rzeczywiscie jest przedszkole:)
po co sie za to zabierasz skoro wogole sie nie orientujesz o co chodzi?

to co ci podalem to jest zapytanie ktore wyswietli ci ilosc komentarzy dla news o id 2.
Lee
Czy ktoś mi może do cho**ry jas**j powiedzieć CO JA MAM KU**A poprawić/zmienić/skasować/wstawić czy jaki c**j żeby wyświetlało mi tą pie**loną ilość komentarzy ?

TABELA main_news
id
title
tresc
czytaj
author
avatar

TABELA main_comments
id
nid (to określa do, którego newsa jest koment, czyli jeżeli komentowałem news'a o id=42 to nid będize = 42)
author
email
title
tresc

*walnijcie mi warna, tak będzie najlepiej, ale to WY wiecie prawie wszystko(albo i wszystko) o php i MySQL, a ja się dopiero ucze i CHICAŁBYM dowiedzieć się jak to się robić żeby w przyszłości wiedzieć jak to zrobić !

@axZx wow przedszkole, właśnie od tego jest ten dział, dla takich tempot jak ja, które chcą się dowiedzieć czegoś konkretnego, a nie
[sql]select count(*) as ile
from MAIN_COMMENTS
where nid = 2[/sq]
poco mi to jak nie wiem jak to można dalej wykożystać, co z tego jeżeli wyświetla mi ilość komentów dla newsa o id=2 jeżeli ja chce do każdego takie coś, to mam za każdym razem dodawać kod ? to po co php skoro moge w htmlu tosamo napisać, za każdym nowym komentem dodając jedną liczbę

NAPISZ mi ktoś wreszcie jak w najprtostrzy sposób mając tabele i pola (u góry) uzyskać wyświetlanie ilości komentarzy dla danego newsa !
AxZx
to masz zapytanie ktor wyswietli ci szystkie newsy a na dodatek liczbe komentarzy danegonewsa:)

  1. SELECT n.*, count(k.kom_id)
  2. FROM news
  3. AS n LEFT JOIN komentarze AS k ON(k.news_id = n.news_id) GROUP BY n.news_id ORDER BY n.news_id


a tu ci jeszcze php napisze pogladowy zebys nie plakal wiecej ze nadal nic nie umiesz bo nie masz sie skad uczyc.
  1. <?php
  2. $zap1 = mysql_query('select n.*, count(k.kom_id) as ile_kom FROM news as n left join komentarze as k on(k.news_id = n.news_id) group by n.news_id order by n.news_id');
  3.  
  4. while($dane1 = mysql_fetch_assoc($zap1)){
  5.  echo $dane1['news_id'];
  6.  echo '<br />';
  7.  echo $dane1['news_tytul'];
  8.  echo '<br />';
  9.  echo $dane1['news_tresc'];
  10.  echo '<br />';
  11.  echo $dane1['ile_kom'];
  12.  echo '<br />';
  13. }
  14. ?>
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.