Intereting Posts
Можно ли предположить, что на сервере будет PHP 5? mysql_fetch_array () / mysql_fetch_assoc () / mysql_fetch_row () ожидает, что параметр 1 будет ресурсом Простая проблема с mod_rewrite в Fat Free Framework Динамически заполняющая веб-страница с загруженным файлом с использованием PHP / JS Как экспортировать контакт в CSV с моей службой? Как добавить прослушиватель событий в динамически добавленное поле с помощью Symfony Forms Использование die () для возврата значения ajax в PHP Программно определять шаблоны в наборе данных? jQuery $ .ajax запрос dataType json не будет извлекать данные из скрипта PHP Обрезать передние и конечные пробелы в значениях JSON Как отслеживать страну посетителя и перенаправлять их на соответствующие сайты? Как сделать динамический адрес действия формы в codeigniter? Проверка постоянной константы Файл загружает результаты в размер файла 0 и код ошибки 0 довольно url в yii2 не работает

разместить несколько результатов в одном массиве

Я написал код в sql, так как просто хочу понять концепцию. Когда это будет сделано, я изменю его на sqli / pdo. поэтому любезно игнорируйте метод sql и plz помогите мне в решении проблемы

Мне нужен список всех продавцов на основе конкретного catid. для этого у меня есть 2 таблицы подкатегории и VendorSubCat. Я пытаюсь связать эти две таблицы, сначала выбирая subcatid (т. е. идентификатор из таблицы подкатегорий) на основе catid, а затем отображая имя поставщика в соответствии с subcatid (из таблицы VendorSubCat), выбранным из предыдущей таблицы.

Подкатегория просмотра таблицы

id subcatname subcatdesc catname catid 

Настольный просмотр VendorSubCat

 vendorname vendorid subcatid 

Код

 <?php ob_start(); require_once('config.php'); $catid = $_REQUEST['catid']; $sql1 = "SELECT * FROM subcategory where catid='" . $catid . "'"; $result1 = mysql_query($sql1); while ($row = mysql_fetch_array($result1)) { $myid = $row['id']; if (sql1 != '0') { $productt = mysql_query("select * from VendorSubCat where id = '" . $myid . "' "); $posts = array(); if (mysql_num_rows($productt)) { while ($post = mysql_fetch_assoc($productt)) { $posts[] = $post; } header('Content-type: application/json'); echo stripslashes(json_encode(array('list' => $posts))); } else { header('Content-type: application/json'); echo stripslashes(json_encode(array('list' => 'No productlist'))); } } } ?> 

Хотя код работает нормально, но отображает результат в другом массиве. он показывает результат, подобный этому

 {"list":[{"id":"1","vendorname":"Marzoogah","vendorid":"1","subcatid":"4"}]}{"list":[{"id":"2","vendorname":"Zee Zone","vendorid":"2","subcatid":"4"}]}{"list":[{"id":"3","vendorname":"Zee Zone","vendorid":"2","subcatid":"7"}]}{"list":[{"id":"4","vendorname":"????? ????????","vendorid":"3","subcatid":"4"}]} 

Я хочу поместить весь результат в один массив, т. Е. Весь список должен попадать под один список. «list» не должен отображаться каждый раз, когда отображается новая строка. Любая помощь будет оценена

Вам не нужно немедленно повторять результаты:

 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