通过快递从多个表中读取

时间:2018-03-05 15:26:23

标签: mysql node.js express

我一直试图解决这个问题超过一周。 我是这个节点/快速环境的新手。

我设法通过本地SQL数据库(MySQL)创建一个包含简单数据的小型Web应用程序。问题是,当我尝试在单个函数中调用多个数据库查询时,我无法获取数据。

我在run.js文件中有这个功能:

...
exports.list= function(req, res){
var id = req.params.id;

req.getConnection(function(err,connection){

    var query = connection.query('SELECT * FROM run WHERE id = ?',[id],function(err,rows)
    {

        if(err){
            console.log("Error Selecting : %s ",err );
        }          
    });

    var query = connection.query('SELECT * FROM users WHERE run = %?%',[x],function(err,results)
    {

        if(err){
           console.log("Error Selecting : %s ",err );
        }   
        console.log("results: ",results[0]);       
        res.render('registration',{page_title:"registration",data:rows,data1:results});
    });  
}); 
};
...

假设我有2个表,一个用于用户,一个用于运行。 在用户表中,我有一个字段,其中标记了他们参与的运行的名称,我想只返回参加特定比赛的用户。

在我的run.ejs文件中,我有所有比赛的列表,并且每个比赛的按钮都可以看到参与其中的用户,具体如下:

...
<td>
  <a class="a-inside dett" href="../run/list/<%=data[i].id%>">List</a>
  <a class="a-inside edit" href="../run/edit/<%=data[i].id%>">Modify</a>
  <a class="a-inside delete" href="../run/delete/<%=data[i].id%>">Delete</a>
</td> 
...

我的list.ejs文件的一部分是(两个表都有一个名称字段):

<div class="page-data">

        <form method="post" action="/run/list/<%=data[0].id%>">
            <table cellpadding="11" align="center">
                <tr>
                    <td class="label"><%=data[0].name%></td>
                    <td class="label"><%=data1[0].name%></td>
                </tr>
...

在此行中报告错误:

<td class="label"><%=data1[0].name%></td>

我也试图以其他方式改变我的功能,但我总是有错误。

...
var query = connection.query('SELECT * FROM run WHERE id = ?',[id],function(err,rows)
{

    if(err){
        console.log("Error Selecting : %s ",err );
    }          
});

var query = connection.query('SELECT * FROM users WHERE run = %?%',[x],function(err,results)
{

    if(err){
       console.log("Error Selecting : %s ",err );
    }   
    console.log("results: ",results[0]);       
}); 
res.render('registration',{page_title:"registration",data:rows,data1:results});
...

这是来自我的app.js文件:

...
app.get('/run/list/:id', run.list);
...

我需要知道如何将更多查询结果传递给.ejs文件,或者如何直接从.ejs文件本身调用MySQL数据库上的查询。 我希望我尽可能多地提供信息,以便更好地解释我的问题。

0 个答案:

没有答案