2017-09-13 21 views
0

我正在使用mysql和sails.js。当我要查询游戏前10名的人,我用:从我的数据库打印页面前10位玩家最简单的方法是什么?

Select name, totalwins/totalgames from user order by totalwins desc limit 10;

这会显示这样的事情在我的终端(缩短到3为例):

+-----------------------+----------------------+ 
| name     | totalwins/totalgames | 
+-----------------------+----------------------+ 
| name 1    |    1.7917 | 
| name 2    |    1.5417 | 
| name 3    |    0.3333 | 
+-----------------------+----------------------+ 

如果我还想要打印到我的页面上本质上使记分牌刷新更新,我怎么能这样做呢?有没有一种通用的方式来与MySQL做到这一点?

+0

您的表格列是否真的名为“totalwins/totalgames”? – Adam

+0

不,我使用'totaltgames'来划分'totalwins'列,以基本模拟击球平均数。 –

+0

亚当表示您应该添加'totalwins/totalgames AS WinLoseRatio'(或不同的东西) –

回答

0

也许我可以假设你有一个帆模型和控制器:UserUserController。 (如果不是,sails文档或项目中的评论应该使这些很容易创建)。在你UserController的(/api/controllers/UserController.js

'GET /mypage': 'UserController.displayPage', 

然后:

module.exports = { 
    displayPage: function(req, res) { 
     User.find({}).sort('totalWins DESC').limit(10).exec(function(err, users) { 
      if (err) { /* handle errors */ } 
      // users has the objects you want in the order you specified 
      // send them to a view using res.view 
      return res.view('myview', {users: users}); 
     }); 
    }, 
    // ... 
} 

这点,你可以建立一个页面,从方法,通过添加以下内容到路由文件(/config/routes.js)被送至您的UserController中将数据发送到/views/myview.ejs的视图。这是一个模板化(基本上)的HTML页面,但在其中您可以访问您的对象并使用标准模板表示法。对于前:

<% for (var idx = 0; idx < users.length; idx++) { %> 
<tr> 
    <td><%= users[idx].name %></td> 
</tr> 
<% } %> 

这是一个很大的步骤,但没有一个是不可逾越的!

相关问题