Доброго дня ребята. подключаю MS SQL Server и строю динамическое дерево Treeview на одну таблицу
CREATE TABLE MyTab (
id INT IDENTITY PRIMARY KEY ,
name NVARCHAR(80) NOT NULL,
parentid INT NOT NULL
)
INSERT INTO MyTab (name, parentid) OUTPUT INSERTED.* VALUES
(N'Чай', 0),
(N'Сигарет', 0),
(N'Чёрный чай', 1),
(N'Зелёный чай', 1),
(N'Жёлтый чай', 1),
(N'Marlboro', 2),
(N'Winston', 2),
(N'Космос', 2),
(N'Крепких спиртных напитков', 0),
(N'Водка', 9),
(N'Виски;', 9),
(N'Джин', 9),
(N'Самбука', 9),
(N'Коньяк', 9);
Config.php Файл для подключения MS SQL Server
<?php
// -----------------------------------
$uid = "sa";
$pwd = "Pass";
$DB = "DB_Test";
$serverName = "LENOVO";
$connectionInfo = array(
"UID" => $uid,
"PWD" => $pwd,
"Database" => $DB,
"ReturnDatesAsStrings" => true,
"CharacterSet" => "UTF-8"
);
$conn = sqlsrv_connect($serverName, $connectionInfo);
if ($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
?>
Потом index.php
<?php
include "config.php";
?>
<!DOCTYPE html>
<html>
<head>
<title>Create treeview with jsTree plugin and PHP</title>
<link rel="stylesheet" type="text/css" href="jstree/dist/themes/default/style.min.css">
<script src="jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="jstree/dist/jstree.min.js"></script>
</head>
<body>
<?php
$sql = "SELECT * FROM MyTab";
$stmt = sqlsrv_query($conn, $sql);
//------------------
$folders_arr = array();
//-----------
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
$parentid = $row['parentid'];
if($parentid == '0') $parentid = "#";
$selected = false;$opened = false;
if($row['id'] == 2)
{
$selected = true;$opened = true;
}
$folders_arr[] = array
(
"id"=>$row['id'],
"parent"=>$parentid,
"text"=>$row['name'],
"state" => array
(
"selected" => $selected,
"opened"=>$opened
)
);
}
?>
<!-- Initialize jsTree -->
<div id="folder_jstree"></div>
<!-- Store folder list in JSON format -->
<textarea id='txt_folderjsondata'><?= json_encode($folders_arr) ?></textarea>
<!-- Script -->
<script type="text/javascript">
$(document).ready(function(){
var folder_jsondata = JSON.parse($('#txt_folderjsondata').val());
$('#folder_jstree').jstree({ 'core' : {
'data' : folder_jsondata,
'multiple': false
}, });
});
</script>
</body>
</html>
Есть там ещё JS файл , выкладываю архив treeview.rar
treeview.rar (335,9 КБ)
Всё работает красиво да… А сейчас вопрос: Если у меня есть “родительский и дочерний таблица” так на пример
-------------родительский на пример-------
create table Product (p_id int identity(1,1) primary key,
p_Name nvarchar(50)
)
-----------Добавляю даных---------------
insert into Product(p_Name)
output inserted.*
values(N'Чай'),
(N'Сигарет')
------На пример создаю дочерней таблица ! Чай ест разние и сигарет тоже ;)
create table Tip_Tovar(id int identity,
tipName nvarchar(40),
ProductID int constraint FK_Prod foreign key(ProductID)
references Product(p_id)
on delete cascade)
-------------Добавляю дочерней таблице---------------
insert into Tip_Tovar(tipName, ProductID)
output inserted.*
values(N'Чёрный чай',1),
(N'Зелёный чай',1),
(N'Жёлтый чай',1),
(N'Marlboro',2),
(N'Winston',2)
Как переделать это цикл
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)
Чтобы отображал table Product.p_id=Tip_Tovar.ProductID