sql >> Databáze >  >> RDS >> Mysql

PHP/mySQL - jak načíst vnořené řádky do multidimensinálního pole

Dotaz by měl vypadat nějak takto:

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

Pokud chcete iterovat pomocí vnořených smyček, budete muset tato data stáhnout do pole – doufejme, že je nestahujete zpět natolik, že to zabere příliš mnoho paměti.

$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;
}

Potom můžete procházet:

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

Poznámka:je to poněkud naivní v tom, že $scale a $item budou oba obsahovat pole z OBOU tabulek... pokud je to problém, musíte změnit přiřazení ve smyčce výše, abyste vytáhli pouze pole, která chcete.



  1. Aplikace Xamarin pro Android s online databází MySql/Sql

  2. Jak HOUR() funguje v MariaDB

  3. Použití SolarWinds Serv-U na Linuxu s SQL Server Authentication Database

  4. MariaDB JSON_OBJECTAGG() Vysvětleno