Deberías poner el error que te dá .. Es más, lo verías más claro si usas estructuras tipo:
Código PHP:
$resultado = mysql_query($consulta) or die (mysql_error());
Pero, en principio estás usando como "alias" para una función que aplicas .. el mismo nombre de una función (max() ) .. eso te puede dar problemas. En SQL (de Msyql o cualquier otra BD) también hay palabras reservadas que no puedes usar para "alias" por ejemplo ...
Por otro lado .. si sólo buscas el valor de ese max(id) puedes usar:
Código PHP:
$max=mysql_result($resultado,0);
Sin necesidad de usar alias en el SQL (as nombre) ni de usar el msyql_fetch_array() .. pues, esa función (mysql_result()) ya accede directamente al resultado del primer registro arrojado de tu consulta y campo primero (el 3er parámetro si no se indica un nº de campo o nombre se asume el primero ..)
Para lo que estás haciendo .. revisa también la función:
mysql_insert_id() (o su equivalente en SQL)
Un saludo,