Fetch()
Résolu
Bonjour
je n'arrive pas a trouvé une méthode pour supprimer une ligne de tableau
voici mon code mais comme ça il supprime toute la table
je n'arrive pas a trouvé une méthode pour supprimer une ligne de tableau
voici mon code mais comme ça il supprime toute la table
<?php
session_start();
include("bdconnect.php");
$reponse = $bdd->query('SELECT * FROM utilisateurs');
while($data = $reponse->fetch()){
?>
<tr>
<td id="t2"> <?php echo $data['nomUser'];?></td>
<td id="t2"> <?php echo $data['prenomUser'];?> </td>
<td id="t2"> <?php echo $data['emailUser'];?> </td>
<td id="t2"> <?php echo $data['pseudoUser'];?> </td>
<td id="t2"> <?php echo $data['passwordUser'];?> </td>
<td id="t2"> <?php echo $data['villeUser'];?> </td>
<td id="t2"> <?php echo $data['paysUser'];?> </td>
<td id="t2"> <?php echo $data['ageUser'];?> </td>
<td id="t2"> <?php echo $data['telephoneUser'];?> </td>
<td id="t2"><input type="submit" name="supp" value="Supprimer" ></td>
</tr>
<?php
if (isset ($_POST['supp']) ) {
$insert=$bdd->prepare('DELETE FROM utilisateurs WHERE nomUser = ?');
$insert->execute( array($data['nomUser']) );
}
}
?>
3 réponses
-
Contributeurbonsoir, ton code est écrit pour supprimer chacun des utilisateurs. remarques-tu que tu n'as rien prévu pour déterminer quel utilisateur supprimer?
-
Contributeuras-tu de l'expérience en html et en php? il me semble que l'exercice dépasse tes connaissances...
-
ModérateurBonjour,
Voila une façon de faire en utilisant les FORMULAIRES
<?php //------------------------------------------------------// //Affichage des erreurs php (A mettre AU DEBUT de tes scripts) //------------------------------------------------------// error_reporting(E_ALL); ini_set('display-errors','on'); //------------------------------------------------------// //démarrage des sessions //------------------------------------------------------// session_start(); //------------------------------------------------------// //connexion à la bdd //------------------------------------------------------// require_once("bdconnect.php"); //------------------------------------------------------// //traitement de la suppression //------------------------------------------------------// // récupération PROPRE des variables POST avant de les utiliser ! $nomUser = !empty($_POST['nomUser']) ? $_POST['nomUser'] : NULL; $prenomUser = !empty($_POST['prenomUser']) ? $_POST['prenomUser'] : NULL; if (isset ($_POST['supp']) ) { $sql = 'DELETE FROM utilisateurs WHERE nomUser = ? AND prenomUser = ?'; $datas = array($nomUser, $prenomUser); try{ $insert=$bdd->prepare($sql); $insert->execute($datas); }catch(Exception $e){ echo "Erreur ! ".$e->getMessage(); } } //------------------------------------------------------// //récupération de la liste des utilisateurs //------------------------------------------------------// try{ $reponse = $bdd->query('SELECT * FROM utilisateurs'); }catch(Exception $e){ echo "Erreur ! ".$e->getMessage(); } //------------------------------------------------------// //Affichage des users //------------------------------------------------------// while($data = $reponse->fetch()){ echo '<tr> <td id="t2">'. $data['nomUser'].'</td> <td id="t2"> '.$data['prenomUser'].'</td> <td id="t2"> '.$data['emailUser'].'</td> <td id="t2"> '.$data['pseudoUser'].'</td> <td id="t2"> '.$data['passwordUser'].'</td> <td id="t2"> '.$data['villeUser'].'</td> <td id="t2"> '.$data['paysUser'].'</td> <td id="t2"> '.$data['ageUser'].'</td> <td id="t2"> '.$data['telephoneUser'].'</td> <td id="t2"> <form method="post" action=""> <input type="hidden" name="nomUser" value="'. $data['nomUser'].'"> <input type="hidden" name="prenomUser" value="'.$data['prenomUser'].'"> <input type="submit" name="supp" value="Supprimer" > </form> </td> </tr>'; } ?>
NB : Au passage .... si ce n'est pas déjà fait, active les erreurs PDO.
Voir ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
EDIT : Ajout des valeurs dans les input hidden. (merci Yg .. j'ai collé trop vite ^^ )
EDIT² : Récupération de la liste déplacé après le traitement du delete.
Cordialement,
Jordane-
Contributeurbonsoir, ne faut-il pas ajouter des "value" dans les deux
input type="hidden"
? ou bien utiliser les deux premières colonnes de chaque ligne en readonly dans la form?
j'étais parti dans l'idée d'uninput type="checkbox"
dans chaque ligne de la table, et d'avoir la table compléte dans un formulaire. c'est effectivement inutilement compliqué.
bien vu! -
-
Modérateur@yg_beoh puré .... faut que j'aille dormir !!
Je corrige de suite...
Bon.. en même temps perso je l'aurai traité en AJAX .. histoire de pas devoir faire de refresh de la page... mais bon. -
@jordane45merci beaucoup ça marche bien
-
Modérateur@assiaass82n'oublies pas de mettre le sujet en RESOLU (lien sous le titre de ta question)
-