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

Jak více výsledků dotazu snížit, aby se snížil počet dotazů?

PDO je o něco víc, než si všichni myslí. Například má pro vás skvělou funkci nazvanou PDO::FETCH_GROUP .

Nemluvě o dalších malých vylepšeních, která mohou váš kód výrazně zkrátit.

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

Je veškerý kód, který potřebujete.

zde vybíráte confirmed nejprve pole a poté řekněte PDO, aby seskupil (nebo "vynásobil") výsledky na základě jeho hodnoty.

A nyní si můžete své komentáře vytisknout, kam chcete

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

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

Nebo to udělat v jedné smyčce

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


  1. MySQL DROP všechny tabulky, ignoruje cizí klíče

  2. Co je ISO_year na serveru SQL

  3. Výběr jednoho řádku v MySQL

  4. Jak filtrovat záznamy pomocí agregační funkce COUNT