Ok, donc si je comprends bien :
- les candidats ont un id unique qui est dans la colonne numerofinanceur de ta table candidat, (il aurait peut être mieux valu l'appeler codecandidat pour être cohérent)
- les manif ont un id unique qui est dans la colonne codemanif de ta table manifestation
- le financeur à un code et fait le lien entre tout ça, dans la table financeur
Donc si un financeur (codefinanceur), finance un candidat (numerofinanceur) pour une manifestation (codemanif), on va retrouver un enregistrement avec ces 3 informations dans ta table financeur. Du coup pour savoir si un financeur finance déjà un candidat pour une manifestation donnée, il te faut effectivement un formulaire dans lequel tu vas récupérer ces 3 informations ou moins si tu connais déjà le code financeur à l'avance parce qu'on est sur sa fiche par exemple).
Si on combine ça avec la requête précédente :
$sql = " SELECT COUNT(*) AS resultat
FROM financeur
WHERE codemanif = " . $codeManif . "
AND numerocandidat = " . $codeCandidat . "
AND codefinanceur = " . $codeFinanceur;
En supposant que tous tes codes sont des nombres (sinon il faut des apostrophes autour des valeurs) et que $codeManif contient le code de la manif sélectionné par l'utilisateur, $codeCandidat le numéro du candidat et $codeFinanceur l'identifiant du financeur.
Lorsque tu exécutes cette requête, le résultat est un nombre, s'il vaut 0 c'est que le financeur ne finance par l'utilisateur pour cette manifestation, s'il est de 1 c'est qu'il le finance déjà (et s'il est supérieur à 1, c'est qu'il y a eu une erreur quelque part et que ton financeur finance plusieurs fois le même candidat pour la même manifestation

)