Me respondo a mi mismo por ignorante y no haberme dado cuenta de algo tan logico.
Hay una función de php (mysql_field_type) que hace esto y funciona de la siguiente forma.
1. ejecutar la consulta
$cnsl = mysql_query (SELECT campos de los que quiero saber el tipo de dato FROM tabla)
2.Ejecuto la funcion que me obtiene el tipo de datos pasandole como parametros la consulta y la posicion de campo segun la consulta y si son varios campos recorrerlo con un bucle o ciclo para darle el valor de la posición.
mysql_field_type($cnsl, posicion del campo segun el SELECT)
para mas info consultar el manual de php
http://www.php.net/manual/es/function.mysql-field-type.php