次のような小さな SQL データベースがあります。
id        name      category
------------------------------
1         name1     category1
2         name2     category2
3         name3     category1
4         name4     category1
そして、次のようにjavascriptとhtmlを使用してdbをフォーマットしたい:
<ul>
    <li>category1
        <ul>
            <li>name1</li>
            <li>name3</li>
            <li>name4</li>
        </ul>
    </li>
    <li>category2
        <ul>
            <li>name2</li>
        </ul>
    </li>
</ul>
SQL 実行をネストできないため、行き詰まっています。カテゴリを表示する方法を見つけましたが、それ以上進むことができませんでした。これが私のJavaScriptです:
var db = openDatabase('dbname', '1.0', 'DB Name', 2 * 1024);
db.transaction(function (tx) {
    tx.executeSql('SELECT DISTINCT category FROM list', [], function (tx, results) {
        if (results.rows.length > 0) {
            for (var i = 0; results.rows.length > i; i++) {
                $('ul').append('<li>' + results.rows.item(i).category + '</li>');
            }
        }
    });
});
ご助力ありがとうございます!
編集: 最終的に 2 つの SQL 実行をネストして、正しい変数を取得できました。しかし、どういうわけか、最初にすべてのカテゴリを取得し、その後で名前を取得します (正しい順序で)。コードを100回チェックしましたが、エラーが見つかりません...
db.transaction(function (tx) {
    tx.executeSql('SELECT DISTINCT category FROM list', [], successCallback);
});
function successCallback(tx, results) {
    if (results.rows.length > 0) {
        for (var i = 0; results.rows.length > i; i++) {
            var result = results.rows.item(i);
            alert('Next Category: '+result.category);
            tx.executeSql('SELECT name FROM list WHERE category = "'+result.category+'"', [], successCallbackTwo);
        }
    }
}
function successCallbackTwo(tx, results) {
    for (var i = 0; results.rows.length > i; i++) {
        alert(results.rows.item(i).name);
    }
}