A ver...
$string es una palabra.
Para cada registro esa palabra es diferente.
Cada vez que se ejecuta el while se sobreescribe esa palabra.
O sea que $string siempre contiene una sola palabra.
Lo que pasa es que se está imprimiendo una por una (a cada pasada del while) y tú estás creyendo que se ha imprimido todo junta sólo porque se ve amontonado....
Al final $string tiene el último valor que se le asignó.
Si lo que quieres es generar una cadena como la que se te imprime, puedes concatenar todo.
Código PHP:
$string = '';// inicializas $string para poder concatenar
while($registro=mysql_fetch_assoc($cct)){
$tipofotos=$registro['tipofoto'];
$string .= $tipofotos;// nota que aquí concateno con el punto.
//etc..etc
Tampoco estás utilizando bien ese explode() dentro del while porque no tiene mucho sentido. Ni siquiera sé para qué necesitas esa larga cadena.
Saludos