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がより多く表示されます。

修理済み 。みなさん、ありがとうございました。

4

1 に答える 1

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']
于 2012-07-17T16:43:53.133 に答える