![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Tarnów/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mam dwie taleblki
newsy: news_id | tresc 1 | tresc_1 2 | tresc 2 3 | tresc 3 itd. oraz druga tabelke komentarze kom_id | news_id | komentarz 1 | 1 | komentarz do newsa_1 2 | 1 | komentarz do newsa_1 3 | 3 | komentarz do newsa_3 jak teraz jak powinno wygladac zapytanie aby uzyskac ilosc komentarzy do poszczegolnych newsow tzn news_id | ilosc_komentarza 1 | 2 2 | 0 3 | 1 Wiem jak zrobic zaby wyswietlily sie newsy z komentarzami i z iloscia komentarzy, ale jesli news nie ma komentarzy (2 wiersz w pow. tabeli) to sie nie wyswietla. Jakies propozycje? -------------------- Pozdrawiam,
kuba |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
$ilosc_komentarzy=mysql_fetch_row(mysql_db_query("baza_danych","SELECT count(*) FROM komentarze where id_komentarza = $id_komentarza"));
teraz juz instrukcja warunkowa if w zaleznosci od wyniku i to wszystko chyba o to Tobie chodzilo ![]() pozdrawiam Lukasz |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Tarnów/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat [php:1:b9749d216c]<?php
ilosc_komentarzy=mysql_fetch_row(mysql_db_query("baza_danych","SELECT count(*) FROM komentarze where id_komentarza = $id_komentarza")); ?>[/php:1:b9749d216c] teraz juz instrukcja warunkowa if w zaleznosci od wyniku i to wszystko Tez o tym myslalem. Tylko jesli w bazie bedzie 100 newsow i do kazdego bede chcial wyswietlic ilosc komentarzy, to bede musial zrobic 100 zapytan i jeszcze 100 sprawdzen, a wolabym to zrobic w jednym zapytaniu. Jesli sie da; Wykminilem cos takiego [sql:1:b9749d216c] select n.news_id,count(k.news_id) AS ilosc_kom from newsy n, komentarze k where k.news_id=n.news_id group by k.news_id;[/sql:1:b9749d216c] Tylko wtedy nie wyswietla mi tych newsow ktorych liczba komentarzy jest rowan zero. Ale chyba z tym zapytaniem bede musial cos kombinowac. -------------------- Pozdrawiam,
kuba |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Sprobuj tak:
pisze to na szybko z glowy: [php:1:87994e8e91]<?php $res=mysql_query("SELECT * from komentarze"); while($row = mysql_fetch_array($res)) { $id_komentarza = $row["id"]; $komentarz=$row["komentarz"]; echo $komentarz; ilosc_komentarzy=mysql_fetch_row(mysql_db_query ("baza_danych","SELECT count(*) FROM komentarze where id_komentarza = $id_komentarza")); echo $ilosc_komentarzy; } ?>[/php:1:87994e8e91] mozesz tez zrobic zapytanie w zapytaniu bardziej szczegolowe ![]() Lukasz |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
On chce jedno zapytanie. I o ile sie nie myle da sie to zrobic outer join'em. Kiedys cos takiego widzialem, ale nie moge sobie przypomniec gdzie. Tych join'ow nigdy nie stosowalem, wiec ciezko mi Ci pomoc, ale dam Ci chodziaz swiadomosc, ze da sie to zrobic.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Proponuję przeanalizować wątek: http://forum.php.pl/viewtopic.php?t=2617
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Dla leniwych:
[sql:1:3316649671] SELECT n.news_id,count(k.news_id) AS ilosc_kom FROM newsy AS n LEFT JOIN komentarze AS k ON k.news_id=n.news_id GROUP BY k.news_id; [/sql:1:3316649671] |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Tarnów/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dzieki bardzo wszytkim za pomoc!
Po drobnych modyfikacjach: [sql:1:11aab8a87a] SELECT n.news_id,count(k.news_id) AS ilosc_kom FROM newsy AS n LEFT OUTER JOIN komentarze AS k ON k.news_id=n.news_id GROUP BY n.news_id; [/sql:1:11aab8a87a] Wszytko dziala okej! ![]() -------------------- Pozdrawiam,
kuba |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 17:06 |