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???