A puro titolo di esempio, da sistemare in base alle tue esigenze:

Codice PHP:
...
$query "SELECT * FROM papier_book ORDER BY category, position";
$result mysql_query($query) or die(mysql_error());
while(
$record mysql_fetch_array($result)){
    
$arr[$record['category']][] = array('title' => $record['title'], 'price' => $record['price'], 'image' => $record['image'], 'description' => $record['description'], 'category' => $record['category']);
}

// Array di ordinamento delle categorie
$categories = array(=> 'Cat B'=> 'Cat C'=> 'Cat D'=> 'Cat A');

foreach (
$categories as $value) {
    foreach (
$arr[$value] as $key => $val) {
        echo 
$val['category']." - ".$val['title']." - ".$val['price']." - ".$val['image']." - ".$val['description']."
"
;
    }
}
... 
Ovviamente nel DB sono presenti le categorie che ho inserito nell'array $categories.