Pues mira prueba cambiando el primer While en vez de mysql_fetch_assoc() por que no colocas mysql_fetch_array()
array mysql_fetch_assoc ( resource $resultado )
Devuelve una matriz asociativa que corresponde a la fila recuperada y mueve el apuntador de datos interno hacia adelante. mysql_fetch_assoc() es equivalente a llamar mysql_fetch_array() con MYSQL_ASSOC como el segundo parámetro opcional. Únicamente devuelve una matriz asociativa.
mysql_fetch_array() es una versión extendida de mysql_fetch_row(). Además de guardar los datos en el índice numérico de la matriz, guarda también los datos en los índices asociativos, usando el nombre de campo como clave.
Intenta cambiandola y luego me cuentas.. espero te sirva.. para que se vaya ese dolor de cabeza..