Votre attribut onClick manque le guillemet simple de fin. Voici ce que je pense qu'il devrait être:
printf("<a href='/r?%s' target=_blank onClick='window.open(location.href=$siteurl/%s-%s.html)'>", $wurl, $myrow["wallpaperid"], $myrow["wallpapername"]);
BTW: J'ai eu du mal à lire même cette seule ligne. Pensez à mettre votre code en retrait pour le rendre lisible par l'homme. Aussi, je recommande de ne pas utiliser la substitution de variable (le $ siteurl var dans votre chaîne) quand vous utilisez printf quand même. Je veux dire, utilisez le même mécanisme pour faire la même chose. N'utilisez que la substitution var ou n'utilisez que le formatage printf, pas les deux. Exemple:
$html = '
<a href="/r?%s"
target=_blank
onClick="window.open(location.href=%s/%s-%s.html)"
>
';
printf($html, $wurl, $siteurl, $myrow["wallpaperid"], $myrow["wallpapername"]);