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