Merhaba,
Php Data Object sınıfını kullanıyorsan öncelikle manual sayfasına bakmalısın.
http://php.net/manual/en/book.pdo.php

$sql = $db->prepare("SELECT * FROM yazi order by id DESC LIMIT 10");
$sql->execute();

prepare çalıştırılacak sql sorgusunu hazırlamak için kullanır, sorgunuz dışarıdan bir parametre almıyor hazır durumda.

$sql = $db->query("SELECT * FROM yazi order by id DESC LIMIT 10");

daha doğru bir kullanım.

gruplama yapmak istiyosun

while($anasayfa=$sql->fetch(PDO::FETCH_ASSOC)) {

kullandığın fetch methodunun gruplama desteği var mı?
http://php.net/manual/en/pdostatement.fetch.php

fetch_style alabileceği parametrele bakarsanız gruplama desteklemiyor. tek bir satır veri döndüren bir methodun desteklememesi olağan.

http://php.net/manual/en/pdostatement.fetchall.php

fetch_style alabileceği parametrelere bakarsanız (PDO::FETCH_GROUP) gruplama desteği bulunuyor.

$sql = $db->query("SELECT tarih_sutunu AS grup_icin,* FROM yazi order by id DESC LIMIT 10");
$rows = $sql->fetchAll(PDO::FETCH_GROUP);

birden fazla parametre özelliği eklemek için bitwise-OR kullanın diyor. bit seviyesinde OR (veya lojik kapısı) matematiksel olarak toplama işlemidir.

$result = $sql->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);

foreach ($result as $tarih=>$rows) {
}

iyi çalışmalar