Te recomiendo que aproveches la función 
mysql_error() para detectar errores en las consultas.
Podrías sustituir la línea
mysql_query($q,$link) or die ("problema con query")
 
y en su lugar poner
mysql_query($q,$link) or die (mysql_error())
 
El error que muestre seguramente te dirá mucho sobre que es lo que está mal en la consulta.
Salu2,
Avalon