Hmmm, hay varias opciones.
La primera es, dentro de el bucle crear la consulta para recuperar los nombres
La segunda es, usar GROUP_CONCAT de MySQL (Disponible desde MySQL 4.1 en adelante)
O:
Código PHP:
<?php
$result = mysql_query("SELECT * FROM tabla1 INNER JOIN tabla2 ON tabla1.id = tabla2.id_fk");
while($row = mysql_fetch_assoc($result)) {
if($lastCat != $row['cat']) {
//imprime el titulo de la categoria
//imprime nombre1
} else {
//imprime nombre2 o 3, etc...
}
$lastCat = $row['cat'];
}
?>
Yo prefiero usar GROUP_CONCAT, te ahorras hacer mucho codigo.