Bonjour.
Pour commencer, si dans tes conditions tu n'utilises pas le même nom d'index que dans le HTML, ça ne peut pas fonctionner.
Par exemple :
- HTML : supprimer » PHP : suppression
- HTML : promouvoir » PHP : promote
En partant de là, tu ne peux en aucun moment entrer dans une des deux conditions.
Ensuite, si tu veux que ton code ait un minimum de cohérence, tu devrais revoir ton code, car tu ne sembles pas savoir comment utiliser correctement les formulaires, sinon tu créerais des formulaires dans ta boucle de tableau, par exemple :
<td>
<form action="" method="post">
<input name="action" value="promouvoir" type="hidden">
<input name="identifiant" value="<?= $m["identifiant"] ?>" type="hidden">
<input type="submit" class="btn btn-primary" value="Promouvoir">
</form>
</td>
<td>
<form action="" method="post">
<input name="action" value="suppression" type="hidden">
<input name="identifiant" value="<?= $m["identifiant"] ?>" type="hidden">
<input type="submit" class="btn btn-primary" value="Supprimer ce compte">
</form>
</td>
Puis côté PHP :
if ($_SERVER['REQUEST_METHOD'] === "POST") {
$query = $db->query('SELECT identifiant, login FROM membres WHERE identifiant ?');
$query->execute([$_POST["identifiant"]]);
$membre = $query->fetch();
if ($_POST['action'] === "promouvoir") {
$suppression = $db->prepare("DELETE FROM membres WHERE identifiant= ? AND login = ?");
$suppression->execute([$membre['identifiant'], $membre['login']]);
} elseif ($_POST['action'] === "suppression") {
$promote = $db->prepare("UPDATE membres SET statut = 'admin' WHERE identifiant = ?");
$promote->execute([$m['identifiant']]);
}
}
Un dernier conseil, pour ce qui concerne l'action de promouvoir, tu devrais faire une condition dessus, car ce serait idiot de proposer l'action si l'utilisateur a déja le statut admin.