2017-09-13 30 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> 
<% } %> 

這是一個很大的步驟,但沒有一個是不可逾越的!

相關問題