El PHP se ejecuta SIEMPRE antes de que cargue la página. Esa mezcla de HTML/JavaScript no se puede hacer de la forma en la que tú la haces.
La forma más primitiva de hacer eso es poner el enlace a otro script que elige el archivo de descarga desde la BD.
Código:
<a href="descargas.php?id=3">
Y en ese descargas.php tienes un código básico:
Código PHP:
// descargas.php
.
// Primero haces la conexión a la BD. Yo no lo hago aqui.
// Luego buscas el archivo correspondiente en la BD
$sql = "SELECT * FROM `tabla wallpapers 1` WHERE id_descarga = ".$_GET['id'];
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$nombre_archivo = $row['archivo'];
//Ya tienes el archivo. Ahora sumas 1 al campo corespondiente.
$sql = "UPDATE `tabla wallpapers 1` SET Ranking=Ranking+1 WHERE id='".$_GET['id']."'";
mysql_query($sql);
header("Location: ".$nombre_archivo);
Como te digo.. eso sería a un nivel ultra básico... pero funciona para alugnos archivos como .zip
Pero lo que quiería era darte una idea de cómo utilizar el enlace... no puedes llamar a una función PHP directamente en un enlace porque cuando la página cargue ya se ejecutó ese PHP.
Saludos