我有一个 SQLite 查询来从数据库中的 ORDERS 表中提取订单:
qry.executeSql("SELECT o.ID AS orderIDx, o.token AS orderTokenx, r.retailerName AS retailerNamex FROM orders AS o LEFT JOIN retailers AS r ON r.token = o.retailerID ", [], function(tx, results){
//query was a success
var len = results.rows.length;
for (var i=0; i<len; i++){
var orderID = results.rows.item(i).orderIDx;
var orderToken = results.rows.item(i).orderTokenx;
var retailerName = results.rows.item(i).retailerNamex;
//create container for order and populate it with orderItems in the below query
qry.executeSql("SELECT * FROM orderItems WHERE orderID = '"+orderToken+"' ", [], function(tx1, results1){
var len1 = results1.rows.length;
for (var i1=0; i1<len1; i1++){
$('.orderItem.'+orderID+' p').append(results1.rows.item(i1).productName);
}
});
}
});
这是我的查询,但由于排除了很多杂乱,我留下了要领。
因此,我试图遍历订单表并在一个部分中显示订单特定信息,并在其中作为下拉菜单显示每个订单项目。因此,在订单循环中,我使用该 ID 来调用 orderItems 等……但它只是将 orderItem 查询的结果附加到最后一个容器中。
我认为这是因为查询是异步的,但我不确定如何在执行订单查询的下一个循环之前填充 orderItem 容器:/
我正在努力用异步 jQuery AJAX 的东西做同样的事情。所以如果这是链接,那么解释会很好。
另外,我打算使用 JOIN 在外部查询中加入 order 和 orerItems 表,但是不确定如何循环遍历项目以及 1 个循环中的订单?