钛工作室,JavaScript和SQL错误…我想不通
Titanium Studio, JavaScript and SQL Error... Cant figure it out
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();
所以基本上我和我的老师一直在挠头试图弄清楚为什么参数会显示所有的数据,但在数据保存后,我们去reconsole注销它,它会显示为空。不知道为什么。谁来帮帮我!
您只保存一个项目(不正确-这就是为什么未定义的原因)。如果你想保存所有内容,你必须遍历整个数组。
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("name"))
或者(这是你想要使用的):
console.log(dataContent[dataContent.length - 1].title)
console.log(dataContent.title); // dataContent is an Array
.
*当然你最好避免在每次迭代中使用dataContent.length
。这只是一个例子
相关文章:
- Ember 1.10-升级错误-模板必须是一个函数.您是想调用Ember.Handlebars.compile(“..”
- 我只想在给出条件时调用一些循环.但这是错误
- 当我只想要1时,获取返回的所有错误消息
- 1个错误弹出窗口.试过调试javascript,想过放弃
- 我想隐藏一个没有'没有js文件中的id.我想不通,请告诉我
- 想要从控制台隐藏错误$(..).focusOut不是函数
- JavaScript谜题我可以'我想不通
- 我想在我的WordPress网站上使用计数器.js但它显示错误
- 将 [$injector:modulerr] 放在一个非常简单的页面上;想不通为什么
- 这两个jQuery语句中没有错误,但我只是想知道为什么
- 这个javascript,php,显示失败缺少什么简单的步骤?想不通
- 我想在输入数据本身时显示错误消息(在 keyup 上)
- 我的 json 请求不会触发之前发送的请求.似乎想不通为什么
- jquery json错误,当我想从Steam市场获取JSON时
- JQuery:由于某种原因,文本被添加到文本框中,我可以'我想不通
- 当字段为空或输入了错误的字段时,我想使用红色边框验证表单字段
- JavaScript窗口.getSelection()可以'我想不通
- 第一次JavaScript测试失败-我只能'我想不通
- 钛工作室,JavaScript和SQL错误…我想不通
- 面临错误-can'我想不通