2012-07-17 63 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