Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP/mySQL - jak pobrać zagnieżdżone wiersze do tablicy wielowymiarowej

Zapytanie powinno wyglądać mniej więcej tak:

SELECT * FROM scales
INNER JOIN items ON scales.id = items.scale_id

Jeśli chcesz przejść przez zagnieżdżone pętle, musisz pobrać te dane do tablicy — miejmy nadzieję, że nie wycofujesz się tak bardzo, że pochłonie to zbyt dużo pamięci.

$scales = array();

while ($row = mysql_fetch_assoc($data))
{
    if (!isset($scales[$row['scale_id']]))
    {
        $row['items'] = array();
        $scales[$row['scale_id']] = $row;
    }

    $scales[$row['scale_id']]['items'][] = $row;
}

Następnie możesz przejść przez:

foreach ($scales as $scale)
{
    foreach ($scale['items'] as $item)
        ; //... do stuff
}

Uwaga:jest to nieco naiwne, ponieważ $scale i $item zawierają pola z OBU tabel... jeśli to stanowi problem, musisz zmienić przypisania w powyższej pętli, aby wyświetlać tylko te pola, które chcesz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uruchomić skrypt PHP w zaplanowanym czasie

  2. Sposób na przerwanie wykonywania skryptów MySQL (być może zgłoszenie błędu)?

  3. MySQL InnoDB Cluster 8.0 — kompletny przewodnik po wdrożeniu:część pierwsza

  4. MySQL Recursive pobierz wszystkie dzieci od rodzica

  5. PHP MYSQL - Wstaw do bez używania nazw kolumn, ale z polem autoinkrementacji