我正在使用phonegap& amp;写一个测验应用程序jQuery的。我有许多类别的问题,用户可以从中选择(通过复选框),并希望构建数据库查询以根据选择从相关类别中提取问题。下面的代码给出了我想要实现的内容的要点,但我无法将queryString传递给executeSql()方法。有没有一种直截了当的做法让我失踪?谢谢,尼克
function queryDB4(tx){
var queryString = "SELECT * FROM SBA_TABLE WHERE (";
if (toggle_cardiology == 1)
{
queryString += "cat_cardiology = 1 AND";
}
else if (toggle_respiratory == 1)
{
queryString += "cat_respiratory = 1"
}
// repeat for other categories
queryString += ") LIMIT 10;";
//alert(queryString);
tx.executeSql(queryString, [], querySuccess3, errorCB);
}
答案 0 :(得分:0)
我认为问题是您的查询字符串无效。这是您的代码可以生成的一个示例字符串:
SELECT * FROM SBA_TABLE WHERE (cat_cardiology = 1 AND) LIMIT 10;
有很多问题:
1=1
(或任何其他始终为真的陈述)以处理尾随AND
。else
子句以允许复选框的组合,而不仅仅是第一个复选框。AND
之后需要一个空格,以避免产生ANDcat_respiratory
。把它放在一起:
if (toggle_cardiology == 1)
{
queryString += "cat_cardiology = 1 AND ";
}
if (toggle_respiratory == 1)
{
queryString += "cat_respiratory = 1 AND ";
}
queryString += "1 = 1) LIMIT 10";