te explico rapidamente, cuando utilizas un while para construir un arreglo se ejecutará todo lo que esta dentro de este mientras no se cumpla la condicion
while ($row=mysql_fetch_array($result2)) en este caso mientras no se alcance el fin de linea(end of file), por lo tanto, cada vez que entra al while $descrip .= $row['descriptor'] siempre tendrá un valor a menos que en la tabla el campo descriptor este vacio, si embargo, tu preguntabas si estaba declarada
$variable=$row['descriptor'];
if (isset($variable))
y en este caso siempre que entra al while es verdadero, por eso te dije que en vez de imprimir en pantalla lo capturaras dentro de una variable y es asi como quedo
Código PHP:
$desc="";//se inicializa la variable para asegurarse que no tenga nada antes de comenzar
while ($row=mysql_fetch_array($result2))//mientras no sea fin de linea ejecuta el while
{
$desc.= $row['descriptor'].",";//se agrega a la variable antes declarada
}
//se elimina el ultimo caracter en este caso la "," (coma)
//strlen($desc)-1= devuelve la longitud de la cadena que se encuentra en $desc pero con un menos
//substr = extrae la cadena de $desc desde la posicion 0 (cero) hasta donde se indique strlen($desc)-1
$desc=substr($desc,0,strlen($desc) - 1);
//se imprime $desc y se le agrega el .
echo $desc.=".";
//NOTA: el "."(punto) sirve para concatenar, tambien se puede usar la ","(coma)
espero que con esto t quede mas claro.
saludos.