Mysql 节点js中foreach循环中的查询问题
我正在从一个查询中获取结果,并希望在下一个查询中传递结果中的值。这是我的密码。但它不起作用,我也尝试了Mysql 节点js中foreach循环中的查询问题,mysql,node.js,foreach,Mysql,Node.js,Foreach,我正在从一个查询中获取结果,并希望在下一个查询中传递结果中的值。这是我的密码。但它不起作用,我也尝试了setTimeOut函数 dbcon.query('SELECT ci_offers.*, ci_advertisers.id as merchant_id, ci_advertisers.full_name, ci_advertisers.phone, ci_advertisers.companylogo FROM ci_offers, ci_advertisers WHERE ci_offe
setTimeOut
函数
dbcon.query('SELECT ci_offers.*, ci_advertisers.id as merchant_id, ci_advertisers.full_name, ci_advertisers.phone, ci_advertisers.companylogo FROM ci_offers, ci_advertisers WHERE ci_offers.advertiser_id = ci_advertisers.id AND ci_offers.is_active=1', function(error, results, fields) {
if (error) throw error;
if (results.length > 0) {
var objectOffer;
var objCoin;
// async.forEachOf(results, function (dataElement, i, inner_callback){
results.forEach((val) => {
objectOffer = jsonParser(val);
var token_id = objectOffer.token_id;
var redeem_coin_grabbed = 0;
if (token_id > 0) {
dbcon.query('SELECT count(id) as coingrabbed FROM ci_grabcoin_details_for_game WHERE user_id = ? AND coin_id= 33', [user_id, token_id], function(error1, results1, fields1) {
if (error1) throw error1;
});
}
val["coingrabbed"] = redeem_coin_grabbed;
final.push(val);
});
}
res.send(final);
});
请用这个想法检查这是否有效
告诉我们您面临的确切错误。什么不起作用?你期望什么,你得到什么?代码在哪里(大约)失败?
let final = [];
dbcon.query('SELECT ci_offers.*, ci_advertisers.id as merchant_id, ci_advertisers.full_name, ci_advertisers.phone, ci_advertisers.companylogo FROM ci_offers, ci_advertisers WHERE ci_offers.advertiser_id = ci_advertisers.id AND ci_offers.is_active=1', function(error, results, fields) {
if (error) throw error;
if (results.length > 0) {
var objectOffer;
var objCoin;
// async.forEachOf(results, function (dataElement, i, inner_callback){
let done = false;
let count = 0;
const markDone = (err) => {
count++;
if ( !done && results.length === count) {
done = true;
res.send(final);
}
};
results.forEach((val) => {
objectOffer = jsonParser(val);
var token_id = objectOffer.token_id;
var redeem_coin_grabbed = 0;
if (token_id > 0) {
dbcon.query('SELECT count(id) as coingrabbed FROM ci_grabcoin_details_for_game WHERE user_id = ? AND coin_id= 33', [user_id, token_id], function(error1, results1, fields1) {
if (error1) throw error1;
});
}
val["coingrabbed"] = redeem_coin_grabbed;
final.push(val);
markDone();
});
}
});