25. august 2003 - 01:06
Der er
24 kommentarer og 1 løsning
Hjælp til SUM i MySQL
Hej. Jeg sidder for første gang og skal lege med SUM(). Har ikke rigtig nogen ide, til hvordan jeg skal bære mig an. CREATE TABLE `comments` ( `ID` int(11) NOT NULL auto_increment, `NewsID` int(11) NOT NULL default '0', `dato` text NOT NULL, `CommentBody` longtext NOT NULL, `user` text NOT NULL, PRIMARY KEY (`ID`) ) TYPE=MyISAM AUTO_INCREMENT=4 ; Jeg vil så have værdien af den samlede sum fra NewsID hvor ID f.eks. er 6 Har prøvet det her: $sql = "SELECT SUM(NewsID) FROM comments WHERE NewsID = $ID AS CommentSUM";
Annonceindlæg tema
25. august 2003 - 01:14
#1
SELECT SUM(NewsID) AS CommentSUM FROM comments WHERE NewsID = $ID
25. august 2003 - 01:27
#2
uhh.. detox.. dig igen. Du er sgu en altvidende person. Mange tak! Jeg sidder så og prøver at bruge det.. Hvordan er det ny jeg får resultatet af det udskrevet, i php?
25. august 2003 - 01:31
#3
$sql = "SELECT SUM(NewsID) AS CommentSUM FROM comments WHERE NewsID = $ID"; $res = mysql_query($sql) or die(mysql_error()); echo mysql_result($res,0);
25. august 2003 - 01:36
#4
kommer den med fejl hvis der ikke er sat noget i tabellen? altså hvis den returnere $null Jeg har jo ikke kommentarer til alle mine news.
25. august 2003 - 01:36
#5
Eller bare: $sql = "SELECT SUM(NewsID) FROM comments WHERE NewsID=$ID"; $res = mysql_query($sql) or die(mysql_error()); echo "Antal kommentarer: ".mysql_result($res,0);
25. august 2003 - 01:39
#6
Næ, så vil den bare give 0.
25. august 2003 - 01:40
#7
hmm. Jeg får en fejl i det. :(
25. august 2003 - 01:40
#8
Ja, hvilken?
25. august 2003 - 01:44
#9
You have an error in your SQL syntax near '' at line 1 Og den ligger ikke i nærheden af linie 1 den sql sætning der
25. august 2003 - 01:46
#10
Det kan være du vil se hele koden? Paster lige i tilfælde deraf. <Font class="text">Alle nyheder</FONT> <? $link = db_connect(); $sql = "SELECT * FROM news ORDER BY id DESC"; $res = db_query($sql, $link); while($tab=mysql_fetch_array($res)) { $id=$tab["ID"]; $kategori=$tab["kategori"]; $kategori2=$tab["kategori"]; $overskrift=$tab["headline"]; $teaser=$tab["teaser"]; $nyhed= nl2br($tab["bodytext"]); $navn=$tab["skribent"]; $kilde=$tab["kilde"]; $dato=$tab["dato"]; if ($kategori2 == "ligegyldig") { $kategori2 = "Ligegyldige Oplysninger"; }; Echo " <center> <table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"600\"> <tr> <td align=\"left\" width=\"450\" bgcolor=\"#D1DBE3\" class=\"text\">Kategori: $kategori2 - $overskrift</td> <td align=\"right\" width=\"150\" bgcolor=\"#D1DBE3\" class=\"text\">$dato</td> </tr> <tr> <td colspan=\"2\" class=\"text\">$teaser</font></td> </tr> <tr> <td colspan=\"2\"><A href=\"?mode=laesnews&kat=$kategori&ID=$id\"><div class=\"text\">Læs mere...</div></A> </td> </tr> </table> </center> <br> "; $sqlcomment = "SELECT SUM(NewsID) FROM comments WHERE NewsID=$ID"; $rescomment = mysql_query($sqlcomment) or die(mysql_error()); echo "Antal kommentarer: ".mysql_result($rescomment,0); }; ?>
25. august 2003 - 01:47
#11
Det må være fordi $ID ikke er initialiseret. Nu ved jeg ikke hvordan du tildeler den værdi, men sørg for at den får en talværdi.
25. august 2003 - 01:49
#12
Yes, det var så fordi jeg helt havde skudt ud at det er case sensitive.
Men. Den skriver 7 komments og 12.. der er tre poster i hele tabellen.
Du kan se det her:
http://80.198.253.88/fjappedk/?mode=allnews
25. august 2003 - 01:49
#13
Husk forskal på små og store bogstaver, brug $id.
25. august 2003 - 01:50
#14
ok, den ligger så NewsID sammen den der... det var da ikke min mening. :/ Hvordan tæller man antallet af poster der har id=6 i NewsID ?
25. august 2003 - 01:58
#15
SELECT COUNT(*) FROM comments WHERE NewsID=$id GROUP BY NewsID
25. august 2003 - 02:00
#16
Hmm, du har vidst ikke brug for group by: SELECT COUNT(*) FROM comments WHERE NewsID=$id
25. august 2003 - 02:05
#17
Yes sir, det virker. Men. Den fejler ved dem der ikke er der. Altså hvis der ikke er noget der er lige sql queryen
25. august 2003 - 02:07
#18
Hvad er fejlen?
25. august 2003 - 02:09
#19
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 9 in c:\apache\htdocs\fjappedk\inc\main\news\allnews.php on line 41 Antal kommentarer: Og så tæller den ellers op i index.
25. august 2003 - 02:13
#20
Prøv sådan her: <font class="text">Alle nyheder</font> <? $link = db_connect(); $sql = "SELECT * FROM news ORDER BY id DESC"; $res = db_query($sql, $link); while($tab=mysql_fetch_array($res)) { $id=$tab["ID"]; $kategori=$tab["kategori"]; $kategori2=$tab["kategori"]; $overskrift=$tab["headline"]; $teaser=$tab["teaser"]; $nyhed= nl2br($tab["bodytext"]); $navn=$tab["skribent"]; $kilde=$tab["kilde"]; $dato=$tab["dato"]; if ($kategori2 == "ligegyldig") { $kategori2 = "Ligegyldige Oplysninger"; } ?> <center> <table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"600\"> <tr> <td align=\"left\" width=\"450\" bgcolor=\"#D1DBE3\" class=\"text\">Kategori: $kategori2 - $overskrift</td> <td align=\"right\" width=\"150\" bgcolor=\"#D1DBE3\" class=\"text\">$dato</td> </tr> <tr> <td colspan=\"2\" class=\"text\">$teaser</font></td> </tr> <tr> <td colspan=\"2\"><A href=\"?mode=laesnews&kat=$kategori&ID=$id\"><div class=\"text\">Læs mere...</div></A> </td> </tr> </table> </center> <br> <? $sqlcomment = "SELECT COUNT(NewsID) FROM comments WHERE NewsID=$id"; $rescomment = mysql_query($sqlcomment) or die(mysql_error()); echo "Antal kommentarer: ".mysql_result($rescomment,0); } ?>
25. august 2003 - 02:17
#21
Sorry: <font class="text">Alle nyheder</font> <? $link = db_connect(); $sql = "SELECT * FROM news ORDER BY id DESC"; $res = db_query($sql, $link); while($tab=mysql_fetch_array($res)) { $id=$tab["ID"]; $kategori=$tab["kategori"]; $kategori2=$tab["kategori"]; $overskrift=$tab["headline"]; $teaser=$tab["teaser"]; $nyhed= nl2br($tab["bodytext"]); $navn=$tab["skribent"]; $kilde=$tab["kilde"]; $dato=$tab["dato"]; if ($kategori2 == "ligegyldig") { $kategori2 = "Ligegyldige Oplysninger"; } ?> <center> <table cellspacing="0" cellpadding="2" border="0" width="600"> <tr> <td align="left" width="450" bgcolor="#D1DBE3" class="text">Kategori: $kategori2 - $overskrift</td> <td align="right" width="150" bgcolor="#D1DBE3" class="text">$dato</td> </tr> <tr> <td colspan="2" class="text">$teaser</font></td> </tr> <tr> <td colspan="2"><A href="?mode=laesnews&kat=$kategori&ID=$id"><div class="text">Læs mere...</div></A> </td> </tr> </table> </center> <br> <? $sqlcomment = "SELECT COUNT(NewsID) FROM comments WHERE NewsID=$id"; $rescomment = mysql_query($sqlcomment) or die(mysql_error()); echo "Antal kommentarer: ".mysql_result($rescomment,0); } ?>
25. august 2003 - 02:27
#22
Det virker som om den anden forespørgsel fucker den første op?
25. august 2003 - 02:30
#23
Mange 1000 gange tak. Du sørger lige for et svar ik' Du har dælme fortjent de få point der var at hente :)
25. august 2003 - 02:32
#24
Ok velbekommen, godt det dur!
25. august 2003 - 03:06
#25
Det gør det :)
Computerworld tilbyder specialiserede kurser i database-management