Вы не должны сразу писать энное количество элементов, а потом в них рассовывать результат. Нет.
Вы должны в цикле выводить сразу разметку, в которую вставляете данные. Сколько итераций сделает цикл - ровно столько тэгов будет выедено.
Пример ниже ужасен, но он показывает суть)
$result = mysql_query("SELECT * FROM `catalog` WHERE `type`='$_GET[type]' ORDER BY `id` DESC");
while($row = mysql_fetch_assoc($result)){
echo "<div class=\"item active\">".$row["name"]."</div>";
}