Avatar billede only-boy Nybegynder
09. december 2004 - 16:45 Der er 12 kommentarer og
1 løsning

Skal vise antallet

Hejsa,

Jeg har et nyhedsscript på min hjemmeside. Jeg har efterhånden selv fået rettet det til mange steder, men mangler lige de sidste små finesser.

Jeg vil høre, om nogen kan hjælpe mig med at lave en kode, som viser hvor mange kommentarer der er på hver enkelt nyhed.

På forsiden, hvor den viser de nyeste nyheder kan man følgende:

echo '<p><a href="news.display.php?id='.$row['id'].'">Læs hele nyheden</a> | <a href="news.display.php?id='.$row['id'].'#kommentarer">kommentar(er)</a>  |  <a href="news.display.php?id='.$row['id'].'#kommenter">Kommentér</a></p>';

Ved "kommentar(er)" kunne jeg godt tænke mig, at den foran der viste hvor mange indlæg der allerede ligger. Om det så er 0 eller 100.


// Only-Boy
Avatar billede Slettet bruger
09. december 2004 - 16:49 #1
du laver udtrækket fra din database og bruger mysql_num_rows() på resultatet.. Den funktion returnerer antallet af matchene rækker..
Avatar billede only-boy Nybegynder
09. december 2004 - 16:49 #2
Forsiden ser således ud:

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis,author,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 2") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<div class="hr"></div>';
   
    echo '<h2><a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a></h2>';

    echo $row['synopsis'];
    echo '<br><br><p>Skrevet af '.$row['author'].', '.$row['date'].'</p>';

    echo '<p><a href="news.display.php?id='.$row['id'].'">Læs hele nyheden</a> | <a href="news.display.php?id='.$row['id'].'#kommentarer">kommentar(er)</a>  |  <a href="news.display.php?id='.$row['id'].'#kommenter">Kommentér</a></p>';

}
?>


Det er hele koden, den skal hente den oplysning om antal i det antal der er i den tabel som hedder "comments" og IKKE "news". Det er i den kolonne som hedder "parent" hvor der står om den høre til nyhed 3 eller nyhed 2. Her skal den så tælle dem sammen som høre til nr. 2 og så sige hvor mange indlæg der er til den enkle nyhed.
Avatar billede only-boy Nybegynder
09. december 2004 - 16:50 #3
gartzen --> Vil jeg lige prøve så.
Avatar billede only-boy Nybegynder
09. december 2004 - 16:55 #4
gartzen --> Mulihed for at definere det på en anden måde, måske lave lidt mere af kodningen? Synes ikke at "mysql_num_rows()" virker når jeg sætter det ind.

* bliver sat ind som det er vist ?
Avatar billede Slettet bruger
09. december 2004 - 16:55 #5
Arh.. Hvis du har en tabel til hver nuhedsdiskution er det mere optimalt med:
SELECT COUNT(*) FROM comments
Avatar billede Slettet bruger
09. december 2004 - 16:58 #6
$result = mysql_query("SELECT * FROM comments WHERE nyhedsnr = ".$row['id']);
echo "Der er ".mysql_num_rows($result)." kommentarer.";



Du skal ændre nyhedsnr og * til din ID for nyheden. (I SQL sætning)
Avatar billede only-boy Nybegynder
09. december 2004 - 16:59 #7
Jeg har ikke en tabel for hver nyhedsdiskution. 2 tabeller, hvor den ene indeholder alle nyhederne m.v. og den anden som hedder comments indeholder ALLE indlæg i (til alle de forskellige nyheder).

I comments er der en række, der hedder parent. Her står det, hvor den høre til. F.eks. nr. 3 hvis den hører til ID/nyhed nr. 3
Avatar billede only-boy Nybegynder
09. december 2004 - 17:02 #8
http://www.syngre.net/ -> du kan følge med her evt. det er forsiden jeg er ved at ændre det på.
Avatar billede Slettet bruger
09. december 2004 - 17:02 #9
<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis,author,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 2") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<div class="hr"></div>';
    $result_comments = mysql_query("SELECT nyhedsid FROM comments WHERE nyhedsid = ".$row['id']);
    echo "Der er ".mysql_num_rows($result)." kommentarer.";
    echo '<h2><a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a></h2>';

    echo $row['synopsis'];
    echo '<br><br><p>Skrevet af '.$row['author'].', '.$row['date'].'</p>';

    echo '<p><a href="news.display.php?id='.$row['id'].'">Læs hele nyheden</a> | <a href="news.display.php?id='.$row['id'].'#kommentarer">'.mysql_num_rows($result_comments).' kommentar(er)</a>  |  <a href="news.display.php?id='.$row['id'].'#kommenter">Kommentér</a></p>';

}
?>



...igen, ændrer du "nyhedsid".
Avatar billede Slettet bruger
09. december 2004 - 17:05 #10
Du skal jo også lige slette:
    echo "Der er ".mysql_num_rows($result)." kommentarer.";

fra mit sidste eksempel.. Havde ikke lige tænkt på at det skulle slettes.

Jeg kan se du tro at mysql_num_rows() skal ind i SQL queryen. Hvis du kigger på mit sidste og eksempel, kan du se at den evaluerer resultatet bagefter :-)

Håber du forstår..
Avatar billede only-boy Nybegynder
09. december 2004 - 17:07 #11
Nu ser den således ud:

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis,author,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 2") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<div class="hr"></div>';
    $result_comments = mysql_query("SELECT parent FROM comments WHERE parent = ".$row['id']);
    echo "Der er ".mysql_num_rows($result)." kommentarer.";
    echo '<h2><a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a></h2>';

    echo $row['synopsis'];
    echo '<br><br><p>Skrevet af '.$row['author'].', '.$row['date'].'</p>';

    echo '<p><a href="news.display.php?id='.$row['id'].'">Læs hele nyheden</a> | <a href="news.display.php?id='.$row['id'].'#kommentarer">'.mysql_num_rows($result_comments).' kommentar(er)</a> | <a href="news.display.php?id='.$row['id'].'#kommenter">Kommentér</a></p>';

}
?>


Det ser ud til at funge nu, tester det lige :-)
Avatar billede only-boy Nybegynder
09. december 2004 - 17:11 #12
Takker for det gartzen - det ser ud til at funge nu... Hvis du smider et svar, så kaster jeg tilgengæld nogen point i nakken efter dig som tak for hjælpen...
Avatar billede Slettet bruger
09. december 2004 - 17:13 #13
Godt :) Det var så lidt ;)
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