Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL统计一个表中最大的引用跟踪_Php_Mysql - Fatal编程技术网

Php MySQL统计一个表中最大的引用跟踪

Php MySQL统计一个表中最大的引用跟踪,php,mysql,Php,Mysql,下表记录了哪些用户引用了哪些用户的网站(例如简化): 我如何做一种递归查询来计算出最长的引用路径 因此,在上面的实例中,用户1将拥有3的推荐线索,因为他们推荐的人,推荐了某人,然后他们推荐的人推荐了其他人 这可能很容易变得相当复杂,但我只希望非常不规则地运行它 作为一个php函数来做可能更好,但我很难理解它?因此,基本上,您需要遍历树图并确定其中哪一个最长。在存储父ID和子ID的数据结构中,您可以通过mysql中存储过程中的循环来实现 但是,您也可以从php中执行相同的操作,这会增加每个循环中p

下表记录了哪些用户引用了哪些用户的网站(例如简化):

我如何做一种递归查询来计算出最长的引用路径

因此,在上面的实例中,用户
1
将拥有
3
的推荐线索,因为他们推荐的人,推荐了某人,然后他们推荐的人推荐了其他人

这可能很容易变得相当复杂,但我只希望非常不规则地运行它


作为一个php函数来做可能更好,但我很难理解它?

因此,基本上,您需要遍历树图并确定其中哪一个最长。在存储父ID和子ID的数据结构中,您可以通过mysql中存储过程中的循环来实现

但是,您也可以从php中执行相同的操作,这会增加每个循环中php和数据库之间的通信开销,因此我相信存储过程实现会更好

很好地概述了如何在mysql中实现和传输图形

您必须修改其中的listReach()过程以返回行数而不是列表。您甚至可以将该过程更改为返回数字的函数。我还将“创建表”部分更改为“创建临时表”

然后使用max()确定哪些路径最长


按照评论中的约定,仅对未引用的用户ID调用此函数。

如果用户1引用了用户2,用户2引用了用户3和4,那么用户1的引用路径有多长?1还是2?换句话说:是链中被引用人的距离重要,还是分支下被引用人的数量重要?您需要
,而
foreach
中,我看到的唯一方法是使用php。无论如何,这对你的机器来说都是非常有压力的。@Shadow应该总是从一个没有被推荐到该站点以避免的用户开始branches@Silver89我知道这一点,于是我问了他们,所以这只不过是计算它的深度,而不是他们提到的数量,希望这是有意义的
| id    |            user_id |    friend_id |
|-------|--------------------|--------------|
| 1     |                1   |          2   |
| 2     |                2   |          3   |
| 3     |                3   |          4   |
| 4     |                10  |          15  |