2012-07-17 61 views
0

我有这样的脚本:组,秩序,限制

$limit1=10; 
$MySQL=mysql_connect($myhost,$myuser,$mypass); 
    mysql_select_db($sitedb); 
    $rank = mysql_query('SELECT usrid,num FROM 7stat '.' GROUP BY usrid ORDER BY num desc LIMIT '.$limit1.''); 
    $i=1; 
    while ($row = mysql_fetch_array($rank)) 
    { 
    echo '<tr> 
     <td align="center">'.$row['usrid'].'</td><br> 
     <td align="center">'.$row['num'].'</td> 
    </tr> '; 
    $i++; 
    } 

基本上应该告诉我前10名冲浪者,但事实并非如此。 在此页中可以找到结果: http://123autotraffic.com/12.php

查看最后一个表格。

我的用户ID:1

我今天取得840个学分(NUM),并从开始超过30000,但脚本显示52。

请帮助。


CREATE TABLE IF NOT EXISTS `7stat` (
    `usrid` int(10) unsigned NOT NULL DEFAULT '0', 
    `date` date NOT NULL DEFAULT '0000-00-00', 
    `num` float unsigned NOT NULL DEFAULT '0', 
    PRIMARY KEY (`usrid`,`date`), 
    KEY `date` (`date`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

我必须使用组,因为它是月统计 如果没有分组将显示相同的用户ID多次。

固定。非常感谢大家。

+0

我们展示表模式。 – Jocelyn 2012-07-17 16:28:38

+0

请直接对数据库运行查询并显示输出。 – 2012-07-17 16:28:58

+2

你为什么需要使用GROUP BY? – Jocelyn 2012-07-17 16:29:07

回答

2

更新脚本中查询:

$rank = mysql_query('SELECT `usrid`, SUM(`num`) AS mysum FROM `7stat` 
         GROUP BY `usrid` ORDER BY mysum DESC LIMIT '.$limit1); 

并在代码中到处替换:

$row['num'] 

有了:

$row['mysum'] 
+0

没有显示信用点... – 2012-07-17 16:46:45

+1

你在脚本中替换了行吗? – Jocelyn 2012-07-17 16:50:54

+1

@Gerculy Robert您还需要将'echo'语句更改为''。$ row ['mysum']。'。'。 – jeroen 2012-07-17 16:54:43