Signaler

Fetch() [Résolu]

Posez votre question assiaass82 8Messages postés mardi 13 juin 2017Date d'inscription 16 juin 2017 Dernière intervention - Dernière réponse le 14 juin 2017 à 00:15 par jordane45
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

<?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']) );
                        }
                    }   
                   
                   
               ?>
Afficher la suite 
Utile
+0
plus moins
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?
assiaass82 8Messages postés mardi 13 juin 2017Date d'inscription 16 juin 2017 Dernière intervention - 13 juin 2017 à 19:50
oui mais je ne sais pas comment!!!! car je veux supprimer la ligne correspondante à le bouton "supprimer" qui se trouve dans chaque ligne .
comment je peut identifier chaque ligne de ma table???
Répondre
Donnez votre avis
Utile
+0
plus moins
as-tu de l'expérience en html et en php? il me semble que l'exercice dépasse tes connaissances...
assiaass82 8Messages postés mardi 13 juin 2017Date d'inscription 16 juin 2017 Dernière intervention - 13 juin 2017 à 23:12
merci pour votre réponse,
en html oui j'ais l'expérience mais je suis débutante en php
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour,

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 :
http://www.commentcamarche.net/faq/46512-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                                                                 
yg_be 2570Messages postés lundi 9 juin 2008Date d'inscription 26 juin 2017 Dernière intervention - 13 juin 2017 à 21:56
bonsoir, 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'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!
Répondre
yg_be 2570Messages postés lundi 9 juin 2008Date d'inscription 26 juin 2017 Dernière intervention - 13 juin 2017 à 22:24
encore une petite chose: sans doute plus prudent de faire le query après le delete, non?
Répondre
jordane45 17555Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 26 juin 2017 Dernière intervention - 13 juin 2017 à 22:43
oh 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.
Répondre
assiaass82 8Messages postés mardi 13 juin 2017Date d'inscription 16 juin 2017 Dernière intervention - 14 juin 2017 à 00:13
merci beaucoup ça marche bien
Répondre
jordane45 17555Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 26 juin 2017 Dernière intervention - 14 juin 2017 à 00:15
n'oublies pas de mettre le sujet en RESOLU (lien sous le titre de ta question)
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !