Avatar billede th1 Nybegynder
26. maj 2005 - 00:26 Der er 17 kommentarer og
1 løsning

Antal Kommentar i MySQL databasen

Hejsa  jeg har et lille Kommentar system til mit nyheds system

Men jeg vil gerne  have at brugeren kan se hvor mange Kommentar der skrevet 

Jeg har denne tabel:

CREATE TABLE `comment` (
  `id` int(11) NOT NULL auto_increment,
  `nyhedsid` int(11) NOT NULL default '0',
  `navn` varchar(20) NOT NULL default '',
  `email` varchar(30) NOT NULL default '',
  `www` varchar(50) NOT NULL default '',
  `kommentar` text NOT NULL,
  `dato` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
)

Jeg har prøvet at bruge dette script:

$result=mysql_query("select count(nyhedsid) as antal from comment");
$row=mysql_fetch_row($result);
print $row[0];

Det tæller godt nok hvor mange beskeder der er i databasen  men ikke for hver nyhed  som jeg angiver med nyhedsid

Håber nogen kan hjælpe  mig 

M.v.H. Th1
Avatar billede hmortensen Nybegynder
26. maj 2005 - 01:02 #1
For en given nyhed:
SELECT COUNT(*) AS antal FROM comment WHERE nyhedsid = x

For alle:
SELECT nyhedsid, COUNT(*) AS antal FROM comment GROUP BY nyhedsid
Avatar billede th1 Nybegynder
26. maj 2005 - 10:36 #2
Hejsa hmortensen  det virker fint når jeg bruger  SELECT COUNT(*) AS antal FROM comment WHERE nyhedsid = x  og erstatter x med 1  men hvad hvis jeg nu har flere end 1 nyhed og gerne vil også tælle kommentarne for dem??
Avatar billede hmortensen Nybegynder
26. maj 2005 - 10:42 #3
Der skulle du gerne kunne bruge den anden
Avatar billede th1 Nybegynder
26. maj 2005 - 10:47 #4
hvis jeg bruger  SELECT nyhedsid, COUNT(*) AS antal FROM comment GROUP BY nyhedsid 
så tæller den kun 1 kommentar pr nyhed selvom der er flere
Avatar billede hmortensen Nybegynder
26. maj 2005 - 12:05 #5
Så må du buge den forkert, for den sætning virker.
Avatar billede th1 Nybegynder
26. maj 2005 - 14:36 #6
hmm hvad mener du helt med  "Så må du bruge den forkert, for den sætning virker." ??


Jeg bruger den her :

SELECT nyhedsid, COUNT(*) AS antal FROM comment GROUP BY nyhedsid
Avatar billede hmortensen Nybegynder
26. maj 2005 - 14:40 #7
Hvis ud har det her data:

1, 1, navn, email, www, En kommentar, dato
2, 1, navn, email, www, En kommentar, dato
3, 2, navn, email, www, En kommentar, dato
4, 1, navn, email, www, En kommentar, dato
5, 4, navn, email, www, En kommentar, dato

Så vil den sætning give det her:
1, 3
2, 1
4, 1
Avatar billede th1 Nybegynder
26. maj 2005 - 14:47 #8
ja men det gør den ikke  :(  :S
Avatar billede hmortensen Nybegynder
26. maj 2005 - 14:51 #9
Det gør den hos mig.

Kan du komme med noget kode ?
Måske problemet ligger i den måde du bruger den på.
Avatar billede th1 Nybegynder
26. maj 2005 - 14:54 #10
ja  det kan self

<?

include "mysql.php";


$query = mysql_query("SELECT id, emne, dato, nyhed FROM news ORDER BY id DESC");

while ($newsrow = mysql_fetch_array($query)){

echo "

<table>

<tr>

<td>

<b>".$newsrow['emne']." - Dato: ".$newsrow['dato']."</b><br />

";



$text = htmlspecialchars($newsrow['nyhed']);

$text = str_replace(":D", "<img src=\"smilie/icon_biggrin.gif\">", $text);

$text = str_replace(":S", "<img src=\"smilie/icon_confused.gif\">", $text);

$text = str_replace(":8", "<img src=\"smilie/icon_cool.gif\">", $text);

$text = str_replace(":cr", "<img src=\"smilie/icon_cry.gif\">", $text);

$text = str_replace(":¨", "<img src=\"smilie/icon_eek.gif\">", $text);

$text = str_replace(":e", "<img src=\"smilie/icon_evil.gif\">", $text);

$text = str_replace("!", "<img src=\"smilie/icon_exclaim.gif\">", $text);

$text = str_replace(":i", "<img src=\"smilie/icon_idea.gif\">", $text);

$text = str_replace(":l", "<img src=\"smilie/icon_lol.gif\">", $text);

$text = str_replace(":[", "<img src=\"smilie/icon_mad.gif\">", $text);

$text = str_replace(":|", "<img src=\"smilie/icon_neutral.gif\">", $text);

$text = str_replace("?", "<img src=\"smilie/icon_question.gif\">", $text);

$text = str_replace(":r", "<img src=\"smilie/icon_razz.gif\">", $text);

$text = str_replace(":f", "<img src=\"smilie/icon_redface.gif\">", $text);

$text = str_replace(":re", "<img src=\"smilie/icon_rolleyes.gif\">", $text);

$text = str_replace(":(", "<img src=\"smilie/icon_sad.gif\">", $text);

$text = str_replace(":)", "<img src=\"smilie/icon_smile.gif\">", $text);

$text = str_replace(":O", "<img src=\"smilie/icon_surprised.gif\">", $text);

$text = str_replace(":tw", "<img src=\"smilie/icon_twisted.gif\">", $text);

$text = str_replace(";)", "<img src=\"smilie/icon_wink.gif\">", $text);

$text = nl2br($text);

echo $text;

?>

<br>
<br>

_______________________________________________________________________
Her bruger jeg koden som du gav mig =)


<a href="comment.php?id=<?=$newsrow[id];?>" target="Iframe">Comment(<?
include "mysql.php";

$result=mysql_query("SELECT nyhedsid, COUNT(kommentar) AS antal FROM comment GROUP BY nyhedsid");
$row=mysql_fetch_row($result);
print $row[0];

?>)</a>
_______________________________
Her slutter den kode som du gav mig

<?
echo "

<td>

</tr>

</table>
<br>


<hr />

";
?><?
if($_GET["comment.php"] ) {

mysql_query("SELECT * FROM news WHERE id = '$_GET[id]") or die (mysql_error());
}
?>

<?
}
?>
Avatar billede hmortensen Nybegynder
26. maj 2005 - 15:00 #11
På den måde som du vil bruge den her, skal du bruge den anden sætning jeg skrev.

Prøv at udskifte det her:
$result=mysql_query("SELECT nyhedsid, COUNT(kommentar) AS antal FROM comment GROUP BY nyhedsid");
$row=mysql_fetch_row($result);
print $row[0];

med:
echo mysql_result(mysql_query("SELECT COUNT(*) FROM comment WHERE nyhedsid = ".$newsrows['id]), 0);
Avatar billede hmortensen Nybegynder
26. maj 2005 - 15:03 #12
Mangler en '
$newsrows['id']
Avatar billede th1 Nybegynder
26. maj 2005 - 15:05 #13
så udsriver den slet ikke hvor mange kommentar der er
Avatar billede th1 Nybegynder
26. maj 2005 - 15:07 #14
ja  det havde jeg set    og  den  udskriver slet ikke hvor mange kommentar der er
Avatar billede hmortensen Nybegynder
26. maj 2005 - 15:10 #15
Hov, der er også et S for meget.
$newsrow['id']
Avatar billede th1 Nybegynder
26. maj 2005 - 15:12 #16
mange tak  nu virker  det  :D  kan du ikke ligge et svar så du kan få dine point??  :)
Avatar billede hmortensen Nybegynder
26. maj 2005 - 15:16 #17
Det var så lidt.
Avatar billede th1 Nybegynder
26. maj 2005 - 15:17 #18
takker for hjælpen og din tid  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester