Mysql
 sql >> база данни >  >> RDS >> Mysql

Създаване на масив с помощта на рекурсивен php от mysql

Намерих този код за групиране на родителски дъщерни масиви за невероятен. Тествах в 4 дълбочини без никакви проблеми. Това обаче не е рекурсивна функция.

$tree = null;
foreach($results as $result)
{
    $thisref = &$refs->{$result['id']};
    foreach($result as $k => $v)
    {
        $thisref->{$k} = $v;
    }
    if ($result['parentId'] == 0) {
        $tree->{$result['id']} = &$thisref;
    } else {
        $refs->{$result['parentId']}->children->{$result['id']} = &$thisref;
    }
}

$tree; // contains the newly sorted tree.

Може да се наложи да направите някаква модификация, за да работи напълно с вашата ситуация. Но основно преглежда всички резултати и ги комбинира чрез препратка.

Имайте предвид, че краят $tree типът данни е object а не array

Успех

АКТУАЛИЗИРАНЕ

Можете да създадете масива като такъв

$query = "SELECT * FROM pB_test ORDER BY parentId ASC";
$dbresult = mysql_query($query) or die ('Database Error (' . mysql_errno() . ') ' . mysql_error());

$results = array();
while($row=mysql_fetch_assoc($dbresult)) 
{ 
    $results[]=$row 
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Позоваване на групи в MySQL регулярен израз?

  2. Истински escape низ и PDO

  3. Използване на Jquery Ajax за извличане на данни от Mysql

  4. Сумиране на часовете от проследяване на времето до календар по ден

  5. Mysql Подобряване на производителността при търсене със заместващи знаци (%%)