我的namespace Day3Homework
{
class Spy
{
SpyForm form = new SpyForm(); //creating an instance of the SpyForm
private string codeName;
private Agency spyAgency;
private DateTime dateLastSeen;
private string notes;
public string CodeName
{
get { return codeName; }
set { codeName = value; }
}
public Agency SpyAgency
{
get { return spyAgency; }
set { spyAgency = value; }
}
public DateTime DateLastSeen
{
get { return dateLastSeen; }
set { dateLastSeen = DateTime.Parse(form.textBox5.Text); }
}
}
表如下所示:
MySQL
树的最大深度为10级。我试图通过指定id来获取所有子ID。目前,我使用循环遍历所有条目的递归| id | parentid |
| 1 | 0 |
| 2 | 0 |
| 3 | 1 |
| 4 | 3 |
...
函数,获取子项并再次循环遍历它们。但是这种方法很慢,所以我试图找到一种php
方法。
我的第一次尝试是:
SQL
这个方法看起来很有希望尝试,但是我希望在php数组中让所有的子id不同。当我执行这个语句时,它非常快,但是我的php代码减慢了它的速度:
SELECT lvl0.id, lvl1.id, lvl2.id, lvl3.id ...
FROM tree lvl0
LEFT JOIN tree lvl1 ON lvl1.parentid = lvl0.id
LEFT JOIN tree lvl2 ON lvl2.parentid = lvl1.id
LEFT JOIN tree lvl3 ON lvl3.parentid = lvl2.id
...
WHERE lvl0.id = 3;
所以我尝试找到一个$ids = [];
foreach($result as $row) {
if(!in_array($row['lvl0.id'], $ids))
$ids[] = $row['lvl0.id'];
if(!in_array($row['lvl1.id'], $ids))
$ids[] = $row['lvl1.id'];
if(!in_array($row['lvl2.id'], $ids))
$ids[] = $row['lvl2.id'];
if(!in_array($row['lvl3.id'], $ids))
$ids[] = $row['lvl3.id'];
...
}
解决方案,也许是与SQL
的组合,它允许我在一个数组中获取所有不同的子ID。