sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo realizar consultas múltiples para reducir el número de consultas?

PDO es un poco más de lo que todos piensan que es. Por ejemplo, tiene una función magnífica para ti, llamada PDO::FETCH_GROUP .

Sin mencionar otras pequeñas mejoras que pueden hacer que su código sea mucho más corto.

$r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);

Es todo el código que necesitas.

aquí está seleccionando el confirmed campo primero y luego dígale a PDO que agrupe (o "multiplique") los resultados según su valor.

Y ahora puedes imprimir tus comentarios donde quieras

// Awaiting Comments
foreach($r[0] as $r_) {
    echo "<li>$r_[title]</li>";
}

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

O, para hacerlo en un bucle

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