J'utilise cordova SQLite storage plugin dans mon application Android. J'ai besoin d'obtenir le résultat de 2 tables à afficher, mes tables sont des "poteaux" et "metas" ...SQLite - ajouter de nouvelles façons de résultat
Donc je peux publier des 'produits' (table de poteaux) et des informations comme le prix et la couleur sont économisés en metas table. Le problème est quand j'ai besoin de montrer des métas des produits, j'ai besoin de la liste et après obtenir l'information des métas de table, mais j'ai besoin d'ajouter des métas dans le résultat principal (de la première requête).
est en fait retourné
results.rows.item(i).id
results.rows.item(i).title
results.rows.item(i).date
et je veux ajouter d'autres articles comme celui-ci
results.rows.item(i).id
results.rows.item(i).title
results.rows.item(i).date
results.rows.item(i).price
results.rows.item(i).color
Mais ne sais pas comment faire, pouvez-vous me aider?
Voici mes fonctions ...
function query(sql, callback){
db.transaction(function(transaction) {
var executeQuery = sql;
transaction.executeSql(executeQuery, [ ],
function(tx, result) {
//Success
if(typeof(callback) == 'function'){
callback(result);
}
},
function(error){
// Error
});
}
}
function get_meta(data, strMetaKey, callback){
for(i=0; i < data.length; i++){
// QUERY
query(/* SQL WHERE id = i.id AND meta_key = strMetaKey*/, function(result){
// here is my problem, I can't add 'price' to data
data.rows.item(i).price = result.rows.item(0).meta_value;
});
}
if(typeof(callback) == 'function'){
callback(data);
}
}
new_data = '';
// getting products
query(/* my query */, function(result){
// getting price
get_meta(result, 'price', function(result){
new_data = result;
});
// getting color
get_meta(result, 'color', function(result){
new_data = result;
});
});
schéma de base de données
posts
ID
title
date
type
metas
id
meta_key
meta_value
Afficher le schéma de base de données. Pourquoi utilisez-vous une table de méta séparée? –
@ CL.Je viens de mettre à jour la question, maintenant vous pouvez voir le schéma de base de données. J'utilise distinct parce que nous pouvons avoir illimité 'meta_keys' les utilisateurs sont libres de créer. –