Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zliczanie ilości przypisanego pola w tabeli
andrzejlechniak
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


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ć?

Ten post edytował andrzejlechniak 5.01.2011, 18:32:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
lord2105
post
Post #2





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

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


  1. $ile = mysql_num_rows($sql_2);// ile rekordow
  2.  
  3. if ($ile == 0) {
  4. //brak komentarzy
  5. }
  6. else {
  7. //pokaz komentarze
  8. }
Go to the top of the page
+Quote Post
andrzejlechniak
post
Post #3





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


Niestety, to średnio pomogło, bo... nic się nie zmienilo na lepsze...
Go to the top of the page
+Quote Post
daros17
post
Post #4





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


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 ?
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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.
Go to the top of the page
+Quote Post
andrzejlechniak
post
Post #6





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


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
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: 25.08.2025 - 06:39