Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como vários resultados de consulta para reduzir o número de consulta?


DOP é um pouco mais do que todos pensam que é. Por exemplo, tem um recurso magnífico para você, chamado PDO::FETCH_GROUP .

Sem mencionar outras pequenas melhorias que podem tornar seu código drasticamente mais curto.
$r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);

É todo o código que você precisa.

aqui você está selecionando o confirmed campo primeiro e, em seguida, diga ao PDO para agrupar (ou "multiplicar") os resultados com base em seu valor.

E agora você pode imprimir seus comentários onde quiser
// Awaiting Comments
foreach($r[0] as $r_) {
    echo "<li>$r_[title]</li>";
}

// Confirmed comments
foreach($r[2] as $r_) {
    echo "<li>$r_[title]</li>";
}

Ou, para fazê-lo em um loop
$titles = [
    0 => 'Awaiting Comments',
    2 => 'Comments waiting confirmation',
    1 => 'Confirmed Comments',
];

foreach ($titles as $code => $title)
{
    echo "<h3>$title</h3>";
    foreach($r[$code] as $r_) {
        echo "<li>$r_[title]</li>";
    }
}