Vu ta requette, un simple mysql_num_rows() suffira : http://fr.php.net/manual/fr/functi [...] m-rows.php
Si la valeur retourné par mysql_num_rows est égale à 0 , alors le parain n'existe pas et si c'est supérieur à 0 alors c'est qu'il existe.
En général, pour ce genre de vérification, on demande à la base de donnée de nous dire le nombre de ligne correspondant au critére de recherche ( select count(*) nb from ... ) et on regarde le contenu de la "colone" nomé "nb". C'est plus propre vu qu'on retourne la valeur utile. C'est peut être aussi plus rapide mais ca demande un peu plus de code.
PS : Avec le code que t'avais fait, tu ne passais jamais dans le while quand le parain n'existe pas vu que mysql ne te retournais aucune donnée et donc tu ne passais jamais par le "header" de redirection. De plus même si t'envoie un header de redirection au navigateur, le serveur continuera à exécuter le reste du code vu qu'il ne se préocupe pas du contenu des données envoyé au navigateur.