te explico porque no pone el punto.
no lo pone porque simplemente $row['descriptor'] nunca esta vacio hasta que sale del while, durante el proceso del while $row['descriptor'] siempre tiene un valor porque el while va recorreindo los registros que haya y cuando llega al end of file simplemente se sale y no llega al else, en todo caso lo que tienes que hacer no es imprimir dentro del while, mas bien, crea una variable a la cual vas concatenando y cuando salga del while le concatenas el punto y lo imprimes.
prueba con esto
Código PHP:
$desc="";
while ($row=mysql_fetch_array($result2))
{
$desc.= $row['descriptor'].",";
}
echo $desc.=".";
espero y te sirva
saludos
pd. ya tenias algo parecido y no lo vi y tienes razon imprime una coma y luego el punto ahora sigo pensando y a ver si funciona con algun otro bucle como el do while