Bonjour.
Tu devrais suivre à nouveau des tutoriels car tu ne sembles absolument pas comprendre ce que tu fais.
Par exemple :
Tu utilises une requête SQL préparée, sans utiliser la bonne méthode, pour rappel une requête classique se présente :
Alors qu'une requête préparée :
Tu as donc déja du mal avec les deux types de requêtes.
Ensuite, ta condition if ($rech->rowCount() < 0) et ce qui suit est totalement illogique, car voilà ce que tu dis :
Si le nombre de lignes retournées est inférieure à 0 alors ...
Le nombre de lignes retournées ne peut pas être inférieur à 0, c'est soit égal ou supérieur à 0, mais certainement pas inférieur à 0.
Pour terminer, c'est tout à fait normal que tu aies tes résultats en double étant donné que dans ta boucle while tu affiches deux lignes pour un même enregistrement de la base de données.
Tu devrais plutôt faire quelque chose du genre :
Une toute dernière chose, <?= $donne['id'] == 1 ?>, que je sache, ça n'a aucune utilité de faire ceci.