Hola,
El problema es el nombre del campo en la base de datos. Mira
http://dev.mysql.com/doc/mysql/en/Legal_names.html y
http://dev.mysql.com/doc/mysql/en/Reserved_words.html . Y veras como in es una palabra reservada.
Otra cosa, out.php te da este error:
Cita: Warning: Supplied argument is not a valid MySQL result resource in /home/.sites/39/site9/web/premios_ib/n/out.php on line 19
posiblemente por este codigo:
Código PHP:
$query =( "select * from ibpremios where id='$id'");
$query= mysql_db_query;
while($array = mysql_fetch_array($query))
Mas cosas, siempre que uses mysql_query() comprueba que se haya ejecutado la consulta en MySQL sin error (si devuelve false, es qeu se ha producido un error en MySQL), y muestra el mensaje de error con mysql_error() (
www.php.net/mysql_error).
Y tambien es altamente recomendable que durante el desarrollo tengas habilitado mostrar los mensajes de error de PHP (directivas display_errors y error_reporting, o la funcion error_reporting()
www.php.net/error_reporting), incluidos los Notices. Los mensajes de error dan muchas pistas para la solucion de los problemas.
Saludos.
PD: Las redirecciones javascript no son recomendables para los buscadores. Aunque sea añade un <noscript> con un texto y un link a la web final.
PD2: La mejor forma de incrementar en uno un campo de una base de datos no es con una combinacion de SELECT+UPDATE, es haciendo un solo UPDATE:
UPDATE tabla SET campo=campo+1 WHERE id=$id
Y en este caso si quieres saber si se ha modificado algun registro (si existe el registro), en lugar de mysql_num_rows() usas mysql_affected_rows() (
www.php.net/mysql_affected_rows).