gpt4 book ai didi

javascript - Titanium Studio,JavaScript 和 SQL 错误...无法弄清楚

转载 作者:行者123 更新时间:2023-12-03 12:21:15 25 4
gpt4 key购买 nike

var url = "http://api.reddit.com/";

var dataArray = [];
var working = function(){
var getData = JSON.parse(this.responseText);
var titles = getData.data.children;

for(var i=0, j=titles.length; i<j; i++)
{
var title = titles[i].data.title;
dataArray.push({
title: title,
favorite: 0
});
}

save(dataArray);

}; //working


var save = function(arg){
console.log(arg);
var db = Ti.Database.open("newData");
db.execute('CREATE TABLE IF NOT EXISTS redditTitles (id INTEGER PRIMARY KEY, name TEXT, favorite INTEGER)');
db.execute('INSERT INTO redditTitles (name, favorite) VALUES (?, ?)', arg.title, arg.favorite);
var rowID = db.lastInsertRowId;
//newRow.id = rowID;
//rows.close();
db.close();
gather();
};

var dataContent = [];

var gather = function(){

var db = Ti.Database.open("newData");
var dbRows = db.execute("SELECT name, favorite FROM redditTitles"); // Returns a Result Set object
while(dbRows.isValidRow()){
dataContent.push({
title: dbRows.fieldByName("name"),
fav: dbRows.fieldByName("favorite")

});
console.log("dataContent: "+ dataContent.title);
dbRows.next();
}
dbRows.close();
db.close();
console.log(dataContent);
userInterAPI();

};

var error = function(){

alert("Please check your network connection and try again.");

};


var client = Ti.Network.createHTTPClient({
onload: working,
onerror: error,
timeout: 5000


});


client.open("GET", url);

client.send();

所以基本上我和我的导师一直在绞尽脑汁试图弄清楚为什么 arg 将显示所有数据,但是在保存数据并且我们去重新控制台将其注销后,它将显示为空。不知道为什么。有人请帮助我!

最佳答案

您只保存了一项(错误 - 这就是未定义的原因)。如果您想保存所有内容,则必须遍历整个数组。

var save = function(arg) {
console.log(arg);
var db = Ti.Database.open("newData");

db.execute('CREATE TABLE IF NOT EXISTS redditTitles (id INTEGER PRIMARY KEY, name TEXT, favorite INTEGER)');
db.execute("BEGIN"); // Transaction

arg.forEach(function(item) {
db.execute('INSERT INTO redditTitles (name, favorite) VALUES (?, ?)', item.title, item.favorite);
//var rowID = db.lastInsertRowId;
});

db.execute("COMMIT");

db.close();
gather();
};

在名为gather的函数中 - 如果您想查看选定的标题,您应该使用:

console.log(dbRows.fieldByName("名称"))

或者(这是您想要使用的):

console.log(dataContent[dataContent.length - 1].title)

而不是

console.log(dataContent.title);//dataContent 是一个数组

*当然,您最好避免在每次迭代中使用dataContent.length。这只是一个例子。

关于javascript - Titanium Studio,JavaScript 和 SQL 错误...无法弄清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24441177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com