【问题标题】:Multi Level user groups PHP Mysql while infinite loop多级用户组 PHP Mysql 而无限循环
【发布时间】:2018-03-27 15:43:35
【问题描述】:

我想创建一个多级用户脚本,我有以下代码可以工作,但只显示一个用户线程。我的目标是向每个人展示所有用户,每个组中至少有 3 个子用户。

我有这个:

Maximo Eladio
- Jose Anibal
  - Juan De Dios
    - Pedro David
      - Luis Alberto
        - Henry
          - Eury Alexander 

但我想要这个:

(0)Maximo Eladio
- (1)Jose Anibal
  - (2)Juan De Dios
    - (3)Pedro David
      - (4)Luis Alberto
        - (5)Henry
          - (6)Eury Alexander 

(1)Jose Anibal
  - (2)Juan De Dios
    - (3)Pedro David
      - (4)Luis Alberto
        - (5)Henry
          - (6)Eury Alexander 

(2)Juan De Dios
    - (3)Pedro David
      - (4)Luis Alberto
        - (5)Henry
          - (6)Eury Alexander 

(3)Pedro David
      - (4)Luis Alberto
        - (5)Henry
          - (6)Eury Alexander  

(4)Luis Alberto
    - (5)Henry
       - (6)Eury Alexander 

这实际上是我的代码:

$sql = "SELECT * FROM t_usuarios ";
$results = mysqli_query($con,$sql) or die(mysqli_error()) ;
if($results)
{
    while($result = mysqli_fetch_array($results))
    {
        $category['categories'][$result['id']] = $result; 
        $category['parent_cats'][$result['id_referido']][] = $result['id']; 
    }
}

function getCategories($parent, $category) 
{
    $html = "";
    if (isset($category['parent_cats'][$parent]))
    {
        $html .= "<ul>\n";
        foreach ($category['parent_cats'][$parent] as $cat_id)
        {
            if (!isset($category['parent_cats'][$cat_id]))
            {
              $html .= "<li>*".$category['categories'][$cat_id]['nombres']."</li> \n";
            }
            if (isset($category['parent_cats'][$cat_id]))
            {
              $html .= "<li>". $category['categories'][$cat_id]['nombres'] . " \n";
              $html .= getCategories($cat_id, $category);
              $html .= "</li> \n";
            }
        }
        $html .= "</ul> \n";
    }
    return $html;
}

    echo $data['category'] = getCategories(0, $category);

请帮我怎么做才能找到路,我试试这个但不行:

$results2 = mysql_query( "SELECT * FROM t_usuarios ORDER BY id ASC", $link );
while ( $tagrow = mysql_fetch_array( $results2 )){

$sql = "SELECT * FROM t_usuarios WHERE id=".$tagrow["id"]."";
$results = mysqli_query($con,$sql) or die(mysqli_error()) ;
if($results)
{
    while($result = mysqli_fetch_array($results))
    {
        $category['categories'][$result['id']] = $result; 
        $category['parent_cats'][$result['id_referido']][] = $result['id']; 
    }
}

function getCategories($parent, $category) 
{
    $html = "";
    if (isset($category['parent_cats'][$parent]))
    {
        $html .= "<ul>\n";
        foreach ($category['parent_cats'][$parent] as $cat_id)
        {
            if (!isset($category['parent_cats'][$cat_id]))
            {
              $html .= "<li>*".$category['categories'][$cat_id]['nombres']."</li> \n";
            }
            if (isset($category['parent_cats'][$cat_id]))
            {
              $html .= "<li>". $category['categories'][$cat_id]['nombres'] . " \n";
              $html .= getCategories($cat_id, $category);
              $html .= "</li> \n";
            }
        }
        $html .= "</ul> \n";
    }
    return $html;
}

    echo $data['category'] = getCategories(0, $category);
}

【问题讨论】:

    标签: php mysql multi-level mlm


    【解决方案1】:

    我不明白您在上一个代码中试图做什么,但如果您将第一个代码块中的 echo $data['category'] = getCategories(0, $category); 更改为:

    $data['category'] = "";
    foreach (array_keys($category['parent_cats']) as $parent)
    {
        $data['category'] .= getCategories($parent, $category);
    }
    echo $data['category'];
    

    它与您已经做过的事情相同,但每次为每只猫使用不同的 $parent 多次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 2013-10-17
      • 2017-10-08
      • 2014-05-30
      • 2016-04-05
      相关资源
      最近更新 更多