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