1

プロジェクトで sqlite データベースを使用しています。

私のテーブル構造はほぼこのようになります

id  cid values

1   1   value1
2   1   value2
3   1   value3
4   1   value4
5   2   value1
6   2   value2
7   3   value1
8   3   value2
9   3   value3

同じcidのすべての値が欲しいのですが、どのようにコーディングすればよいですか?

私のクエリ:

tx.executeSql("SELECT cid,value FROM table where cid="+cid_value, [], querySuccess, errorCB,cid_value);

なぜなら、次の方法で試してみたところ、

var details = results.rows.length;
console.log("db test value:"+results.rows.item(cid_value).value);
for (var i=cid_value; i<details; i++)
{
cidinstance=results.rows.item(i).cid;
var valueinstance=results.rows.item(i).value;
document.getElementById("s"+i+"cause").innerHTML=valueinstance;
console.log("cid= "+cidinstance +   "valueinstance= "+valueinstance);
}

次に、i=cid_value(cid_value=1)が cid=1 を対象としている場合、4 つの値がある場合、 3 つの値しか得られません。しかし、i=0を入力すると、 4 つの値が得られます。

i=cid_value(cid_value=2)ターゲット cid=2 の場合、次の結果が得られます

01-01 05:45:38.687: I/Web Console(2425): JSCallback: Message from Server:  SQLitePluginTransaction.queryCompleteCallback('1104538538488000','1104538538491000', [{"value":"value1","cid":"2"},{"value":"value22","id":"6","cid":"2"}]); at file:///android_asset/www/cordova-2.1.0.js:3726.

問題は、JS コールバックとしてサーバーからメッセージを取得するときに値を取得していることです。forループからではありません

問題を解決する方法を教えてください!.解決方法を教えてください。

4

1 に答える 1

1

特定の CID がリストされている行の数を知りたい場合は、SQLite で COUNT 関数を使用する必要があります。

したがって、あなたのステートメントは::

SELECT COUNT(values) FROM TableName WHERE cid=1 

これにより、カウントが直接得られます。自分で計算を行うためのコードは必要ありません。

于 2013-05-21T14:17:13.127 に答える