Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zliczanie komentarzy
rockets
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2004

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


Wiem że już to było ale chodzi mi dokładnie o WARUNEK

mam coś takiego

W MySQL-u 2 tabele

news:
ID || ...

i news_comments:
ID || NEWSID || ...

I teraz w zapytaniu nie wiem co zrobic po WHERE

[php:1:2c6f38143b]<?php
$sql = mysql_query("SELECT count(*) FROM news_comments WHERE newsid='$newsid'");
list($ile) = mysql_fetch_array($sql);
?>[/php:1:2c6f38143b]


?>[/php]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
krysk
post
Post #2





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 20.04.2002
Skąd: Szczecin

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


ja bym to zrobił inaczej

[php:1:a611fd6c74]<?php
$sql = mysql_query("SELECT * FROM `news_comments` WHERE `newsid`='$row[newsid]'");
$ile = mysql_num_rows($sql);
echo $ile;
?>[/php:1:a611fd6c74]


punkcik for me ;} hehe


--------------------
Krzysztof Wójcik
Zend Certified Engineer
Go to the top of the page
+Quote Post
rockets
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2004

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


Może źle wytłumaczyłem
Mam coś takiego:

Tabelę ze skrótem wiadomości i wywala mi te wiadomości z bazy [while] i do tego nie mogę dodać ile w danym newsie jest komentarzy a komentarze odczytuje z drugiej tabeli tak jak jest pokazane na początku
Go to the top of the page
+Quote Post
kszychu
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


[php:1:6a5a98b022]<?php
$sql = mysql_query("SELECT count(c.ID) FROM news AS n, news_comments AS c WHERE n.ID = c.newsid AND c.newsid='$newsid'");
list($ile) = mysql_fetch_array($sql);
?>[/php:1:6a5a98b022]

Chyba.....


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
rockets
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2004

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


Ani to ani to nie działa:
Wkleje przykładowy kod żeby było jaśniej :?

[php:1:65fc850bd0]<?php
$sql = mysql_query("SELECT * FROM news_comments WHERE newsid='$newsid'");
$ile = mysql_num_rows($sql);

$result = mysql_query("select * from news ORDER BY id DESC");
while($row = mysql_fetch_array($result)){
echo "<a href='xxx.php?news=".$row['id']."' class='m'>".$row['tytul']." ($ile)</a><br><br>";}
?>[/php:1:65fc850bd0]
Go to the top of the page
+Quote Post
kszychu
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


[php:1:c0bf1d1a4d]<?php
$sql = mysql_query("SELECT * FROM news as n, news_comments as c WHERE n.ID = c.newsid AND n.id='$newsid'");
$ile = mysql_num_rows($sql);

$result = mysql_query("select * from news ORDER BY id DESC");
while($row = mysql_fetch_array($result)){
echo "<a href='xxx.php?news=".$row['id']."' class='m'>".$row['tytul']." ($ile)</a><br><br>";}
?>[/php:1:c0bf1d1a4d]
No to może tak?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
spenalzo
post
Post #7





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Pierwsza odpowiedź kszycha jest poprawna - jeżeli coś nie działa to z łaski swojej może napiszesz co jest nie tak?

Przy okazji:
[php:1:8251c66806]<?php
$sql = mysql_query("SELECT * FROM news as n, news_comments as c WHERE n.ID = c.newsid AND n.id='$newsid'");
?>[/php:1:8251c66806]
Takie coś może zadziałać ale może sie sypać - ponieważ tutaj w obu tabelach są pola ID to zapytanie się wysypie. Jeżeli robicie coś takiego to:
[sql:1:8251c66806]SELECT c.*, n.costam .....[/sql:1:8251c66806]
Wtedy są dokładnie określone nazwy pól.


--------------------

Go to the top of the page
+Quote Post
rockets
post
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2004

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


Już próbowałem i nic

Pokazuje mi cały czas (0) i nie wiem co mam zrobić :?
Go to the top of the page
+Quote Post
spenalzo
post
Post #9





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


[manual:47f614c4dd]mysql_error[/manual:47f614c4dd]


--------------------

Go to the top of the page
+Quote Post
kszychu
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat
Przy okazji:
[php:1:7581dce48c]<?php
$sql = mysql_query("SELECT * FROM news as n, news_comments as c WHERE n.ID = c.newsid AND n.id='$newsid'");
?>[/php:1:7581dce48c]
Takie coś może zadziałać ale może sie sypać - ponieważ tutaj w obu tabelach są pola ID to zapytanie się wysypie. Jeżeli robicie coś takiego to:
[sql:1:7581dce48c]SELECT c.*, n.costam .....[/sql:1:7581dce48c]
Wtedy są dokładnie określone nazwy pól.


Ale to się nie wysypie smile.gif Sprawdziłem i zawsze tak robie jeśli chodzi mi o ilość pól.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
kiyote
post
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 21.11.2003

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


[php:1:cf1ce52491]<?php
$query_wyswietl_ilosc = "SELECT count(id) FROM news_comments WHERE newsid=$newsid";
$wyswietl_ilosc = mysql_query($query_wyswietl_ilosc, $baza) or die(mysql_error());
$row_wyswietl_ilosc= mysql_fetch_assoc($wyswietl_ilosc);
$ilosc_komentarzy=$row_wyswietl_ilosc['count(id)'];

?>[/php:1:cf1ce52491]

Dostosuj do swoich potrzeb i voila. Pod $newsid podstawiasz id odpowiedni do newsa ale to chyba juz sobie zaplanowales.
Mozesz to wrzucic w funcje np i wywolywac przy wyswietlaniu kazdego newsa. Takie lopatologiczne rozwiazanie i napewno mniej ladne od rozwiazania kszycha ale tez dziala . .


--------------------
Warsztat: Apache 1.3.27 - MySQL 3.25.55 - PHP 4.3.2
Narzedzia: Macromedia Dreamweaver MX - MySqlFront
Na warsztacie: sikret proj
Go to the top of the page
+Quote Post
rockets
post
Post #12





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2004

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


MySql error nic nie pokazuje bo przeciez to nie blad :? Podaje mi zły wynik i zawsze albo mam 0 albo mam 1 w ilości komentarzy i tak pomyślałem że to może przez te podwójne ID ale tez nic nie dało. Próbowałem wszystkiego co mi tutaj podaliście

Może mam błąd w tabelach:
Zmieniłem w news_comments id na lp ale i tak dalej jest problem i nic to nie dało

[sql:1:9d4024c3b0]TABLE `news` (
`id` int(11) NOT NULL auto_increment,
`tytul` varchar(100) NOT NULL default '',
KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=0 ;


TABLE `news_comments` (
`newsid` int(11) NOT NULL default '0',
`lp` int(11) NOT NULL auto_increment,
`tytul` varchar(150) NOT NULL default '',
KEY `lp` (`lp`)
) TYPE=MyISAM AUTO_INCREMENT=0 ;[/sql:1:9d4024c3b0]

A tutaj mam zapytania:

[php:1:9d4024c3b0]<?php
<?php
$sql = mysql_query("SELECT count(c.lp) FROM news as n, news_comments as c WHERE n.id = c.newsid AND n.id='$newsid'");
$ile = mysql_num_rows($sql);

$result = mysql_query("select * from news ORDER BY id DESC");
while($row = mysql_fetch_array($result))
{
echo "".$row['tytul']." ($ile)";
}
?>
?>[/php:1:9d4024c3b0]

Help rolleyes.gif
Go to the top of the page
+Quote Post
rockets
post
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2004

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


Pokazuje mi cały czas (1) niezależnie ile bym miał komentarzy...

Może ktoś ma jakiś pomysł jak to rozwiązać ?
Go to the top of the page
+Quote Post
rockets
post
Post #14





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2004

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


[php:1:c93ed9c48f]<?php
<?
// laczymy sie z baza
$query = mysql_query("SELECT * FROM `newsy` ORDER BY `id` DESC");
while($dane = mysql_fetch_array($query))
{
$ile = @mysql_fetch_row(mysql_query('SELECT COUNT(`newsid`) as ile FROM `komentarze` WHERE `newsid` = "'.$dane['id'].'"')) or $ile[0] = '0';
echo $dane['id'].' - '.$dane['tytul'].' - '.$ile[0].'<br>';
}
?>
?>[/php:1:c93ed9c48f]

SAM SOBIE ODPOWIEDZIAŁEM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:05