Fetch()
Résolu
assiaass82
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
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
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, ton code est écrit pour supprimer chacun des utilisateurs. remarques-tu que tu n'as rien prévu pour déterminer quel utilisateur supprimer?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
as-tu de l'expérience en html et en php? il me semble que l'exercice dépasse tes connaissances...
Bonjour,
Voila une façon de faire en utilisant les FORMULAIRES
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
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
bonsoir, ne faut-il pas ajouter des "value" dans les deux
j'étais parti dans l'idée d'un
bien vu!
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'un
input 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!
comment je peut identifier chaque ligne de ma table???