Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zliczanie ilości przypisanego pola w tabeli
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Hej, mam taki kod:

  1. $sql_2 = 'SELECT w.id wid, w.tytul wtytul, w.wiadomosc wwiadomosc, k.id kid, k.osoba kosoba, k.data kdata, k.tresc ktresc FROM komentarze k '.
  2. 'LEFT JOIN wiadomosci w ON w.id = k.id WHERE k.id= '.$idNews.' ORDER BY k.id ASC';
  3. $res_2 = mysql_query($sql_2) or die(mysql_error());
  4.  
  5. while ($row = mysql_fetch_array($res_2))
  6. {
  7. extract($row);
  8. $idNews = $wid;
  9. if(!isset($wid))
  10. {
  11. echo 'Nie ma komentarzy dla tej wiadomości';
  12. }
  13. else
  14. {
  15. echo '<div class="komentarze_main">';
  16. echo '<div class="komentarze_autor">Komentarz nr: <span>'.$kid.'</span> dodany przez: <span>'.$kosoba.'</span> | dnia: <span>'.$kdata.'</span></div>';
  17. echo '<div class="komentarze_tresc">'.$ktresc.'</div>';
  18. echo '</div>';
  19. echo '<hr />';
  20. }
  21.  
  22. }


i teraz mam dwie rzeczy, których nie potrafię rozwiązać, może mi pomożecie?
1. Zliczanie ilości komentarzy dla KONKRETNEJ wiadomości (wiem, że zliczanie dla całej tabeli się robi poprzez mysql_num_rows, ale jak zrobić dla czegoś takiego jak tutaj)
2. Jak napisać warunek, który wyświetla to, że nie ma wyników. Nadmienię tylko, że w takiej postaci jak jest teraz wyświetla wyniki, albo dosłownie nic, a chodziłoby mi o to, aby wyświetlała się informacja, że nie ma wyników, bla bla bla... Chyba cusik spaprałem...
Pomożecie?

Odkryłem coś jeszcze: wyświetla się tylko jeden wynik dla wiadomości, jak TO można zmienić?
lord2105
  1. $ile = mysql_num_rows($sql_2);// ile rekordow
  2.  
  3. if ($ile == 0) {
  4. //brak komentarzy
  5. }
  6. else {
  7. //pokaz komentarze
  8. }
andrzejlechniak
Niestety, to średnio pomogło, bo... nic się nie zmienilo na lepsze...
daros17
1. Utworzyłbym w bazie kolumnę komentarze przy wiadomości i z niej zliczał ile jest komentarzy.
2. próbowałeś zmienić z !isset na isset ?
thek
Mam pytanie... Czy Ty chcesz tym zapytaniem od razu pobrać wiadomość i komentarze do niej, czy wystarczy Ci tylko ilość tych komentarzy?

Jeśli to pierwsze (to rozwiązanie sugeruje mi treść zapytania Twojego), to najprościej po stronie php utworzyć tablicę, do której wrzucać będziesz dane wiadomości oraz jako jedno z pól tej tablicy będzie kolejna tablica, tym razem z komentarzami. Późniejsze wywołanie count na owej tablicy zagnieżdżonej z komentarzami to będzie już pikuś.

Ale owiele lepsze jest rozwiązanie 2 bo znacznie mniej jedzie po bazie. Gdy zrobisz JOIN obu tabel, robisz GROUP BY id_wiadomości i w SELECT dodatkowo wstawiasz count(id_komentarza), co zwróci Ci ilość komentarzy dla danej wiadomości.
andrzejlechniak
Chodzi mi o wypisanie wszystkich komentarzy do konkretnej wiadomości i zliczanie ich, to znaczy:


TAKI WZORZEC:
tytuł wiadomość - ilość komentarzy: 2
----------------------------------------------
komentarze:
1. komentarz 1
2. komentarz 2

to tak pokrótce... Może coś mam nie halo w zapytaniu w bazie, bo wyświetla mi jeden wynik dla wiadomości, a nie wszystkich dla konkretnej wiadomości, np. Mam jeden komentarz to wyświetla jeden, ale jak mam 3 komentarze, to również wyświetla mi 1 komentarz
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.