Golden Basim Ответов: 3

Как получить категории и дочерние категории (неограниченный уровень) в таблицу с помощью PHP


у меня есть таблица категорий .. (ID,ParentID,название,заказ)

cat1
--cat1.1
--cat1.2
---cat1.2.2
---cat1.2.3
---cat1.2.4
----Неограниченный уровень
--cat1.3
cat2
категории cat3

я следил за этим замечательным учебные пособия

Бесконечная динамическая многоуровневая вложенная категория с PHP и MySQL – Roy Tutorials


все это хорошо но,
1 - мне нужно поместить результат в таблицу . подобный этому [изображение]
2 - мне нужно поместить результат в поле выбора.подобный этому [изображение]

спасибо

Что я уже пробовал:

я следил за этим замечательным учебные пособия

Kornfeld Eliyahu Peter

Ни одна таблица, ни одно поле выбора не предназначены для иерархических данных!!!

Golden Basim

что я делаю, чтобы показать их в таблице ? ( например, страница категорий joomla )

Kornfeld Eliyahu Peter

Я не знаю Joomla, но инстинктивно я бы использовал упорядоченный/неупорядоченный список...
С помощью таблицы, чтобы получить тот же эффект, вы должны ввести вычисленный отступ в соответствии с уровнем...

Kornfeld Eliyahu Peter

Кстати - откуда у вас эти данные? В базе данных?

Golden Basim

да..
мне нужно сделать вот так
http://joomtraining.com.au/assets/categoryManager.jpg

3 Ответов

Рейтинг:
4

Golden Basim

After many, many attempts

function buildCatTable($parent = 0 ,$level=0) {
       global $con;
       $getStmt = $con->prepare("SELECT * FROM productscatagories WHERE ParentID = ? ORDER BY ParentID,Ordering,ID ");
       $getStmt->execute(array($parent));
       $cats = $getStmt->fetchAll();

       foreach($cats as $cat) {
           echo "<tr>"."<td>". str_repeat("| - -  ".str_repeat('&nbsp;', $level), $level). $cat['Title'] . "</tr>"."</td>";
           buildCatTable($cat['ID'] ,$level +1);
       }

   }


Рейтинг:
1

Dipak384

<?php
//fetc.php
$connect = mysqli_connect("localhost", "root", "", "shopp");
$query = " SELECT * FROM maincategory ";
$result = mysqli_query($connect, $query);
//$выходной массив();
while($row = mysqli_fetch_array($result))
{
$sub_data["код"] = $строка["код"];
$sub_data["раздел"] = $строки [категория""];
$sub_data["текст"] = $строки [категория""];
$sub_data["p_id"] = $строка["p_id"];
$данных[] = $sub_data;
}
по каждому элементу($данных $ключ =&ГТ; &амп;$значение)
{
$выход[$значение["ИД"]] = &ампер;$значение;
}
по каждому элементу($данных $ключ =&ГТ; &амп;$значение)
{
если($значение["p_id"] &ампер;&ампер; использования isset($выход[$значение["p_id"]]))
{
$выход [["p_id"]] [узлы][] = &ампер стоимостью$;$значение;
}
}
по каждому элементу($данных $ключ =&ГТ; &амп;$значение)
{
если($значение["p_id"] &ампер;&ампер; использования isset($выход[$значение["p_id"]]))
{
unset($data[$key]);
}
}
echo json_encode($data);
/*эхо '

';
print_r($data);
echo '
';*/

?>

$(документ).готово(функция(){
$.Аякс({
URL-адрес: "fetc.php",
метод:"пост",
тип данных: "json",
успех: функция(данные)
{
$('#дерево').в TreeView({сведения: сведения});
}
});

});


Рейтинг:
0

Maciej Los

Если я вас хорошо понимаю, вам понадобится рекурсивная функция для загрузки иерархических данных. Пожалуйста смотрите:
php - загрузка иерархических данных из базы данных в массив - переполнение стека[^]
php - преобразование серии отношений родитель-потомок в иерархическое дерево? - переполнение стека[^]