Ciao,
ci sono 90275783264986502874652873495 modi per poterlo fare.

Se prendiamo ad esempio un link
Cat1
Cat2
....
CatN

Ci sarà sicuramente una discriminante nella costruzione della sql per tirare fuori i dati dal db
es

$sql="SELECT * prodotti";
if(isset($_REQUEST['cat']) && $_REQUEST['cat']!=""){
$sql.="WHERE cat = '".$_REQUEST['cat']." ";
}

in pratica richiamando semplicemente la pagina eseguo $sql minimale.
Se invece c'è il parametro $_REQUEST['cat'] allora concateno $sql con la condizione where per filtrare solo quelli appartenenti alla categoria