2016-08-11 1 views
0

スニペットは:SQLiteの数と取得他のレコード私のコードの

​​

私はテーブルからデータを取得すると同時に、カウントしようとしています:

var sql = "SELECT name,data, COUNT(name) as 'mycount' FROM floodMaps WHERE name='?' GROUP BY name,data"; 
      db.transaction(function(tx) { 
       tx.executeSql(sql,[flodMapName], function(tx,res){ 
        //console.log(res.rows.item(0).data); 
        console.log(res.rows.item(0).mycount); 
        if(res.rows.item(0).mycount > 0) { 
         console.log('GETTING DATA FROM DB...'); 

それはエラーをスローします残念ながらそれは動作していません。私は私の研究を行った、私はpluginの良い文書を見つけていない。

document.addEventListener("deviceready", function(){ 
    //database 
    db = window.sqlitePlugin.openDatabase({name: 'demo.db', location: 'default'}); 
    db.transaction(function(tx) { 
     tx.executeSql('CREATE TABLE IF NOT EXISTS floodMaps (name text primary key, data text)'); 
     tx.executeSql('DELETE FROM floodMaps'); 
    }, function(error) { 
     console.log('Create Table ERROR: ' + error.message); 
    }, function() { 
     console.log('Table created successfully.'); 
    }); 
    //end database 
}, false); 

全体のコードはhereです:

これは私がテーブルを作成する方法です。

答えて

1

?パラメータのプレースホルダーはではなく、は一重引用符で囲む必要があります。代わりにこれを試してみてください:

var sql = "SELECT name, data, COUNT(name) as `mycount` FROM floodMaps WHERE name= ? GROUP BY name, data"; 
+0

これで、 '未定義のmycount 'プロパティを読み取れません。 –

+0

'mycount'のまわりでバッククイックを使うか、まったく何も使わないでください。申し訳ありませんが、そこには見えませんでした。 –

+0

それを試しました。同じエラー。私は質問に自分のテーブルを作成した方法を追加しました。 –

0

エイリアスには一重引用符を使用する必要はありません。次のように使用することができます。

SELECT name,data, COUNT(name) as mycount FROM floodMaps WHERE name=? 

はあまりにもカウントクエリのサンプルを持っていること、このofficial linkをチェックしてください。

+0

私はそれをしようとした..同じエラー..私の全体のコードをチェックする? –

+0

@MattMorales https://github.com/gandhirajan/Cordova_SQLiteのこの基本的な作業サンプルをチェックして、役立つかどうか確認できますか? – Gandhi

関連する問題