我想在第二个查询(sql2)中使用第一个查询(sql1)的结果。第一个查询(sql1)的结果进入.ejs页,但第二个查询(sql2)没有结果。
var sql1 = 'SELECT * FROM `Rooms`';
con.query(sql1,function(err,rows,fields){
if(!err)
{
var count=rows.length;
for(i=0;i<count;i++)
{
arr_room[i]=rows[i].room_name;
}
}
else
{
console.log('error...');
}
});
var sql2 = 'SELECT * FROM Lights WHERE room_name =? ' ;
con.query(sql,arr_room[0],function(err,rows,fields){
if(!err)
{
var count=rows.length;
for(i=0;i<count;i++)
{
arr_icon[i]=rows[i].icon;
}
}
else
{
console.log('error...');
}
res.render('lighting',{arr_icon,arr_room});
});
2条答案
按热度按时间xqk2d5yq1#
你需要筑巢
sql2
进入sql1
,在nodejs
一切都是异步的,这意味着您必须先等待一些东西完成。你在第二个问题上打错了电话
sql
而不是sql2
```var sql1 = 'SELECT * FROM
Rooms
';con.query(sql1, function(err, rows, fields) {
if (!err) {
var count = rows.length;
//for (i = 0; i < count; i++) {
// arr_room[i] = rows[i].room_name;
//}
} else {
console.log('error...');
}
});
gpfsuwkq2#
我知道这个问题已经有了答案,但我想提供一个只支持sql的解决方案:使用子查询,而不是执行两个单独的查询,并在node.js中对它们的结果进行操作。