Bonjour à tous,
dans mon application je cherche à exécuter une requête dans une boucle comme ci:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| function testbc(){
allalim = document.getElementById('retour').value;
var taille = allalim.length;
var nb = 0;
console.log('1 : debut testbc');
var dbPath = Windows.Storage.ApplicationData.current.localFolder.path + '\\aliments.sqlite'
SQLite3JS.openAsync(dbPath)
.then(function (db) {
while (nb < 1) {
var alim = allalim.substring(0, (taille - 1));
return db.eachAsync('SELECT Nom, ID, COUNT (*) as compteur FROM aliments WHERE Nom LIKE ?', [alim + '%'], function (row) {
var id = row.ID
var nom = row.Nom
nb = row.compteur
console.log('2 : id = ' + id + ' nom = ' + nom + ' et nb = ' + nb);
var retour = 'id = ' + id + ' nom = ' + nom + ' et nb = ' + nb;
console.log('3 : retour = ' + retour);
document.getElementById('retour').value = retour;
taille = taille - 1;
})
};
//.then(function () {
db.close()
//})
})
} |
le but est de récupérer la chaîne qui se trouve dans le champ texte 'retour' et de trouver une correspondance dans ma bdd. Pour ça je regarde si la chaîne complète s'y trouve. Si ce n'est pas le cas, je retire le dernier caractère de la chaîne et je recommence. et ainsi de suite.
Le problème est que dans tout les cas la boucle n'est exécutée qu'une fois. Même si nb = 0.
Quelqu’un a-t-il une idée pour me sortir de cette impasse?
Merci
PS:
Pour info...
La console JavaScript est attachée et accepte des commandes.
HTML1300: Une navigation s’est produite.
Fichier*: default.html
copy file: aliments
1 : debut testbc
SQLite3 version: 3.8.2 (2013-12-06 14:53:30 27392118af4c38c5203a04b8013e1afdb1cebd0d)
2 : id = null nom = null et nb = 0
3 : retour = id = null nom = null et nb = 0
Partager