Lo primero, no se si es estricto pero yo uso siempre el where antes de ordenar.
Y lo segundo, $idcategoria es un nombre de variable, por tanto deberías extraerlo de las comillas del siguiente modo.
Código PHP:
"SELECT * FROM restaurant WHERE idcategoria=".$idcategoria." ORDER BY nombre ASC";
Saludos.