Fetch()
Résolu
assiaass82
Messages postés
8
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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
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?
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???