Gracias por sus comentarios.
Descubrí de tanto probar que mi código está bien (como lo puse originalmente arriba, puliendo solo un par de detalles). El problema estaba en la codificación... estaba usando UTF-8 y en la lista de categorías me mostraba cuadritos en vez de tildes. Indagando descubrí que solo los que tenían tilde (cuadritos) no me mostraba las subcategorias y no era por el nombre.
Cambié a iso-8859-1 y se solucionó. Ahora muestra todo sin cuadritos y todas las subcategorias funcionan.
Gracias por su interes en ayudar
Para quien le sirva subo el codigo pulido y completo...
Código HTML:
<form name="subcategorias" id="subcategorias" method="post" action="consult_subcat.php">
Código PHP:
<?
include ("connect.php");
if (isset($cat)){
$sql = "SELECT * FROM categorias WHERE categoria = '$cat' ORDER BY subcategoria";
$result = mysql_query($sql) or die (mysql_error());
echo '<select name="subcat">';
echo '<option value> -- Seleccione una subcategoria -- </option>';
while ($row=mysql_fetch_array($result)){
echo '<option>'.$row["subcategoria"];
}
}
?>
Código HTML:
<input type="submit" name="submit" value="Filtrar Resultados">
</form>