JQuery phonegap app - 复合数据库查询字符串

时间:2011-03-17 22:19:36

标签: javascript jquery database ios cordova

我正在使用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);

}

1 个答案:

答案 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";