1st query; both tables contain all categories_id
s
SELECT
*
FROM
categories c,
categories_description cd
WHERE c.categories_id = cd.categories_id
ORDER BY sort_order, cd.categories_name
2nd query; this table maybe hold a categories_id
SELECT
count(*)
AS total
FROM
products_to_categories
WHERE
categories_id = "'+ catid +'"'
I need a way to row all categories from the first query (to make a list) and to give me a yes/no or 0/1 from the second query in one SQL query.
The result would look like this:
categories_id | categories_name | total(*)
1 | categorie1 | 21
2 | categorie2 | 0 (if categories_id in 'products_to_categories' does not exist
I require it in the following code:
var dbSize = 5 * 1024 * 1024; // 5MB
var db = openDatabase("Oscommerce", "1.0", "Oscommerce Database", dbSize);
var categories={};
var list_str = '';
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM categories c,categories_description cd WHERE c.categories_id = cd.categories_id ORDER BY categories_id', [], function (tx, results) {
list_str += '<ul data-role="listview" data-inset="true" data-theme="d">';
var len = results.rows.length, i;
for (i = 0; i < len; i++) {
var r = results.rows.item(i);
categories[r.categories_id] = r;
}
for(key in categories)
{
var parent = 0;
var value=categories[key];
catId = value['categories_id'];
catName = value['categories_name'];
catImage = value['categories_image'];
parentId = value['parent_id'];
if (parentId == parent)
{
list_str += '<li id="'+ catId +'"><a class="parentlink" parentid="'+ parentId +'" catid="'+ catId +'" catname="'+ catName +'"><h3>' + catName + '</h3><p>' + catImage + '</p></a></li>';
///i need to do an else around here if the rowed list has products
}
}
list_str += '</ul>';
$('#parents').html(list_str).find('ul').listview();
});
});
The total output should generate something like this (watch the count bubbles in the list).
2
Answers
Try out something like this:
This select should be what you want: