繁体   English   中英

如何将 WebSql COUNT 输出保存为 javascript 变量?

[英]How to save WebSql COUNT output as javascript variable?

我正在寻找有关如何最好地完成此任务的建议,但在网络上一无所获。 我想计算从 SQL SELECT 查询返回的结果数量,并使用 JS/Jquery 在我的 HTML 页面上输出。 随意告诉我有一种比我所做的更快更简单的方法!!

我发现一些使用 node.js 的建议,但我不想使用它,因为这是一个小型学校项目。

这是我在单击选择框时使用的功能。 我将它与 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}。 当我尝试将其添加到

我正在使用的标签,在网页上看起来是这样的:

[对象,对象]。

如果您还没有意识到,我正在使用 WebSQL、JS 和 HTML。 如果有帮助,也相当精通 jQuery。

这是我的代码的链接:

https://webucate.com.au/project/8sBxh4dPQ42fYB7viODZ/share

要访问我正在谈论的页面,请单击:预订会话 -> 向下滚动到“选择时间” -> 选择一些内容。 (上午 10:00 和下午 1:00 是我在数据库中的值,它们分别在数据库中出现 1 和 2 个实例)在控制台中,您应该看到 u、I 和 count 输出的内容。

SQL 查询使用 COUNT() 函数。 它将只返回结果中的一行和一列。

因此,无需迭代结果集。 您是否有理由使用迭代 50 次的 i 循环?

我建议将 SQL 命令更改为

SELECT COUNT ( * ) AS COUNT FROM Sessions WHERE sessiontime = (?)

这样您需要的值的列名将被设置为 COUNT。

之后,从结果集中检索所需的值将更容易。 您可以简单地使用 results.rows[0] 获取第一行。 然后检索“COUNT”列中的值。

var count = results.rows[0]["COUNT"]
time.innerHTML = count;

希望这可以解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM