首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对COUNT(*)进行积分?

如何对COUNT(*)进行积分?
EN

Stack Overflow用户
提问于 2011-11-26 23:00:55
回答 3查看 129关注 0票数 1
代码语言:javascript
复制
<?php
    $dbname = 'pdartist2';
    $table = 'artwork';
    $result = mysql_query("select AID, ThumbFilePath, Title, DisplayOrder from artwork where SCID = $SCID order by DisplayOrder") or die(mysql_error());
while($row = mysql_fetch_array($result)){   
    $AID = $row['AID'];
    $ThumbFilePath = $row['ThumbFilePath'];
    $Title = $row['Title'];
    $DisplayOrder = $row['DisplayOrder'];
    $RecordCount = $row['Count']; {
            $ColCount = $ColCount+1;
        if ($ColCount ==5) {
            echo "<div id='clear'></div>";
            $ColCount = 1;
    }
    echo "<div id='thumb' onClick='window.location='gallery_detail.php?AID=AID';' title='Enlarge'>";
    echo "<div id='thumb_container'>";
    echo "<a href='gallery_detail.php?AID=$AID'><img src='/$ThumbFilePath' title='Enlarge' alt='Enlarge' border='0'></a>";
    echo "<div id='name_spacer'>";
    ($ColCount);
    echo "<div id='thumbdesc'>$Title</div>";
    echo "</div>";
    echo "</div>";
    echo "</div>";
    }       
}
    mysql_free_result($result);
    ?>

当我运行这个查询时,它的工作方式是正常的。当我添加COUNT()时,问题出现了。我需要这样的东西:

代码语言:javascript
复制
$result = mysql_query("select AID, ThumbFilePath, Title, DisplayOrder, COUNT(*) AS RecordCount from artwork  where SCID = $SCID order by DisplayOrder") or die(mysql_error());   

但是该查询的结果并不是它应该得到的结果。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-26 23:07:02

我认为您希望对总行进行计数,但COUNT(*)会自动将它们分组在一起。

考虑使用子查询。

代码语言:javascript
复制
$result = mysql_query("select AID, ThumbFilePath, Title, DisplayOrder, (SELECT COUNT(*) FROM artwork WHERE SCID=$SCID) ResultCount FROM artwork  where SCID = $SCID order by DisplayOrder") or die(mysql_error());
票数 2
EN

Stack Overflow用户

发布于 2011-11-26 23:12:49

代码语言:javascript
复制
$query = "select AID, ThumbFilePath, Title, DisplayOrder 
          from artwork where SCID = $SCID order by DisplayOrder";
$result = mysql_query($query) or trigger_error(mysql_error()); 
$scid_count = mysql_num_rows($result);

这是你要找的东西吗?

票数 4
EN

Stack Overflow用户

发布于 2011-11-26 23:06:58

当您添加计数(*)时,您将返回所有行的计数,这将导致单行返回。如果想要原始查询返回的总行数,只需在查询返回后使用mysql_num_rows。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8279287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档