gpt4 book ai didi

PHP - SQL 表中的嵌套数据树

转载 作者:行者123 更新时间:2023-11-29 16:15:46 25 4
gpt4 key购买 nike

我有一个 SQL 表,其中包含包含子部件的部件列表。我需要想出一种将数据输出到树中的方法,以显示哪些数据进入了其他数据。

表格如下:

Part_Number | Sub_Part
1 1a
1 1b
1 1c
1a 1a0
1a 1a1
1b 1b0
2

因此我需要输出这样的内容:

-1
--1a
---1a0
---1a1
--1b
---1b0
--1c
-2

我想不出解决方案,我尝试使用循环中的循环来提取信息,但我能得到的最好的结果是每层的第一个子部分:1, 1a, 1a0。

<?php $lookup = ['1']; ?>
<?php
x:
$i = $i . '-';
?>

<?php foreach($lookup as $look) : ?>
<p><?php echo $i . $look; ?></p>
<?php $lookup = []; ?>

<?php $query = mysqli_query($conn, "SELECT Sub_Part FROM `Bill_Of_Materials` WHERE Part_Number = '{$look}'"); ?>
<?php while($search = mysqli_fetch_array($query)) : ?>
<?php array_push($lookup, $search[0]); ?>
<?php endwhile; ?>

<?php goto x; ?>
<?php endforeach; ?>

我认为最好的方法可能是为每个顶级部分创建对象,然后使用递归循环为其中的每个子部分以及每个子部分创建对象,等等。

然而,对象对我来说还很陌生,所以这可能吗?

最佳答案

我自己成功解决了这个问题,方法是创建一个对象,然后在 SQL 表中搜索子部分,并为每个子部分创建另一个对象。

class part {
function __construct($partNumber, $layer = '-') {
echo $layer . $partNumber . '<br>';

$conn = mysqli_connect('localhost', 'user', 'pass', 'database');

if(!$conn) {
die('Connection Failed: ' . mysqli_connect_error());
}

$subs = mysqli_query($conn, "SELECT Sub_Part FROM `Bill_Of_Materials` WHERE Part_Number = '{$partNumber}'");

while($sub = mysqli_fetch_assoc($subs)) {
$sub = new part($sub['Sub_Part'], $layer . '-');
}
}
}

$a = new part('123');

关于PHP - SQL 表中的嵌套数据树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54803172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com