如何将 WebSql COUNT 输出保存为 javascript 变量?
How to save WebSql COUNT output as javascript variable?
我正在寻找有关如何最好地完成此任务的建议,但在网上找不到任何内容。
我想计算从 SQL SELECT 查询返回的结果数,并使用 JS/Jquery 在我的 HTML 页面上输出结果。请随时告诉我有比我所做的更快更简单的方法!!
我找到了一些使用 node.js 的建议,但我不想使用它,因为这是一个小型学校项目。
这是我在单击 select 框时使用的功能。我将它与 HTML 中的 'onchange' 结合使用(我认为它是 HTML)并且有效。
function placesLeft(val) {
let time = document.getElementById("placesLeft");
//time.innerHTML = val;
let selected = val;
db.transaction(function(tx) {
tx.executeSql('SELECT COUNT ( * ) FROM Sessions WHERE sessiontime = (?)', [selected], function(x, results) {
for (let i=0; i < 50; i++) {
const u = results.rows.item(i);
let count = 50 - i;
console.log(count);
console.log(i);
console.log(u);
time.innerHTML = count;
console.log(time.innerHTML);
};
});
});
}
目前,如果我 console.log 'u',当查询为 运行 时,它会输出正确数量的结果。但是,它在控制台中输出如下:{COUNT ( * ): 2}。
当我尝试将它添加到我正在使用的
标签时,它在网页上看起来像这样:
[object, Object].
我正在使用 WebSQL 如果你还没有意识到,JS 和 HTML。也相当精通 jQuery,如果有帮助的话。
这是我的代码 link:
https://webucate.com.au/project/8sBxh4dPQ42fYB7viODZ/share
要访问我正在谈论的页面,请单击:book a session -> 向下滚动到 'Choose a time' -> 选择一些内容。 (10:00am 和 1:00pm 是我在数据库中的值,它们分别在数据库中出现 1 和 2 个实例)在控制台中,您应该看到 u、I 和 count 输出。
SQL 查询使用了 COUNT() 函数。它将 return 结果中只有一行和一列。
因此无需迭代结果集。
您使用迭代 50 次的 i-loop 是有原因的吗?
我建议将 SQL 命令更改为
SELECT COUNT ( * ) AS COUNT FROM Sessions WHERE sessiontime = (?)
这样你需要的值的列名就会被设置为COUNT。
之后,从结果集中检索所需的值会更容易。
您可以简单地使用 results.rows[0] 获取第一行。
然后检索“COUNT”列中的值。
var count = results.rows[0]["COUNT"]
time.innerHTML = count;
希望这能解决您的问题。
我正在寻找有关如何最好地完成此任务的建议,但在网上找不到任何内容。 我想计算从 SQL SELECT 查询返回的结果数,并使用 JS/Jquery 在我的 HTML 页面上输出结果。请随时告诉我有比我所做的更快更简单的方法!!
我找到了一些使用 node.js 的建议,但我不想使用它,因为这是一个小型学校项目。
这是我在单击 select 框时使用的功能。我将它与 HTML 中的 'onchange' 结合使用(我认为它是 HTML)并且有效。
function placesLeft(val) {
let time = document.getElementById("placesLeft");
//time.innerHTML = val;
let selected = val;
db.transaction(function(tx) {
tx.executeSql('SELECT COUNT ( * ) FROM Sessions WHERE sessiontime = (?)', [selected], function(x, results) {
for (let i=0; i < 50; i++) {
const u = results.rows.item(i);
let count = 50 - i;
console.log(count);
console.log(i);
console.log(u);
time.innerHTML = count;
console.log(time.innerHTML);
};
});
});
}
目前,如果我 console.log 'u',当查询为 运行 时,它会输出正确数量的结果。但是,它在控制台中输出如下:{COUNT ( * ): 2}。 当我尝试将它添加到我正在使用的
标签时,它在网页上看起来像这样:
[object, Object].
我正在使用 WebSQL 如果你还没有意识到,JS 和 HTML。也相当精通 jQuery,如果有帮助的话。
这是我的代码 link:
https://webucate.com.au/project/8sBxh4dPQ42fYB7viODZ/share
要访问我正在谈论的页面,请单击:book a session -> 向下滚动到 'Choose a time' -> 选择一些内容。 (10:00am 和 1:00pm 是我在数据库中的值,它们分别在数据库中出现 1 和 2 个实例)在控制台中,您应该看到 u、I 和 count 输出。
SQL 查询使用了 COUNT() 函数。它将 return 结果中只有一行和一列。
因此无需迭代结果集。 您使用迭代 50 次的 i-loop 是有原因的吗?
我建议将 SQL 命令更改为
SELECT COUNT ( * ) AS COUNT FROM Sessions WHERE sessiontime = (?)
这样你需要的值的列名就会被设置为COUNT。
之后,从结果集中检索所需的值会更容易。 您可以简单地使用 results.rows[0] 获取第一行。 然后检索“COUNT”列中的值。
var count = results.rows[0]["COUNT"]
time.innerHTML = count;
希望这能解决您的问题。