Не е необходимо да отразявате резултатите веднага:
echo stripslashes(json_encode(array('list' => $posts)));
Вместо това съберете всички в един масив:
$results = array();
//Your code
$results[] = array('list' => $posts);
//...
$results[] = array('list' => 'No product list');
//...
//And echo just one time in the end:
echo stripslashes(json_encode($results);
или нещо подобно за сливане:
$results = array();
//Your code
$results = $results + $posts;
//...
$results = 'No product list';
//...
//And echo just one time in the end:
echo stripslashes(json_encode(array('list' => $results)));
Освен това можете да изпълните заявката си за база данни без рекурсивни заявки;
Нещо като:
SELECT vsc.* FROM VendorSubCat vsc
INNER JOIN subcategory sc ON vsc.id=sc.id
WHERE sc.cat_id = 15