Mysql
 sql >> Database >  >> RDS >> Mysql

PHP/mySQL:come recuperare le righe nidificate in un array multidimensionale

La query dovrebbe essere simile a questa:

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

Se vuoi scorrere i cicli nidificati, dovrai inserire questi dati in un array, si spera che tu non stia ritirando così tanto da consumare troppa memoria.

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

Quindi puoi scorrere:

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

Nota:questo è un po' ingenuo in quanto $scale e $item conterranno entrambi i campi di ENTRAMBE le tabelle... se questo è un problema, devi modificare le assegnazioni nel ciclo sopra per estrarre solo i campi che desideri.