IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Suppression d'un enregistrement d'une BDD php/mysql


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Points : 9
    Points
    9
    Par défaut Suppression d'un enregistrement d'une BDD php/mysql
    bonjour à tous !
    j'ai besoin d'un coup de main, je souhaiterais supprimer une ligne à partir de mon formulaire sans aller dans mon phpmyadmin, pour cela, j'ai écris quelques lignes de code mais ça ne fonctionne pas . Il y a aucune suppression dans la base de donnée et pas de messages d'erreurs.
    voici les 2 fichier codes que j'utilise;

    fichier 1: users.php;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php include('config/serveur.php'); ?>
     
    <html>
    <head>
     <meta charset ="utf-8">
     
     
    	<title>Utilisateurs</title>
    </head>
    <body class="container">
    	<?php 
            $sql 	= $bdd->query('SELECT * FROM login');
     $users = $sql->fetchAll(PDO::FETCH_OBJ);
     
     
     
    	 ?>
     
    <h3 class="text text-success text-center">Liste des utilisateurs</h3>
     <table>
     <tr>
     	<th>id</th>
     	<th>Nom</th>
     	<th>Prénom</th>
     	<th>Fonction</th>
    	<th>Action</th>
     
     </tr>
     	<?php
     
     		foreach ($users as $user) {
     			$id= $user->idlogin;
     			echo "<tr>";
     			echo "<td>".$id."</td>";
     
     			echo "<td>".$user->nom."</td>";
     			echo "<td>".$user->prenom."</td>";
     			echo "<td>".$user->fonction."</td>";
     
     
     
     
                echo "<td><a href='delete_user.php?id=$id'>Supprimer </a></td>";
     		         echo "</tr>";
     		}
     	 ?>
     </table>
     
    </body>
    </html>
    et mon fichier 2: delete_user.php;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     include('config/serveur.php');
     
     if(isset($_GET['idlogin'])){
     
     
        $id = $_GET['idlogin'];
     
        	$query ="DELETE FROM login WHERE idlogin=".$id."";
        	$bdd=exec($query);
     
     
    		header ('Location:users.php');
     
     
    }
    merci de me répondre

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2016
    Messages : 30
    Points : 44
    Points
    44
    Par défaut
    Modifie la vue comme ceci : utilise $user->id la place de $id (deux endroit de la page)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php include('config/serveur.php'); ?>
     
    <html>
    <head>
     <meta charset ="utf-8">
     
     
    	<title>Utilisateurs</title>
    </head>
    <body class="container">
    	<?php 
            $sql 	= $bdd->query('SELECT * FROM login');
     $users = $sql->fetchAll(PDO::FETCH_OBJ);
     
     
     
    	 ?>
     
    <h3 class="text text-success text-center">Liste des utilisateurs</h3>
     <table>
     <tr>
     	<th>id</th>
     	<th>Nom</th>
     	<th>Prénom</th>
     	<th>Fonction</th>
    	<th>Action</th>
     
     </tr>
     	<?php
     
     		foreach ($users as $user) {
     			$id= $user->idlogin;
     			echo "<tr>";
     			echo "<td>".$user->id."</td>";
     
     			echo "<td>".$user->nom."</td>";
     			echo "<td>".$user->prenom."</td>";
     			echo "<td>".$user->fonction."</td>";
     
     
     
     
                echo "<td><a href='delete_user.php?id=$user->id'>Supprimer </a></td>";
     		         echo "</tr>";
     		}
     	 ?>
     </table>
     
    </body>
    </html>

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2016
    Messages : 30
    Points : 44
    Points
    44
    Par défaut
    et dans le fichier qui reçoit la requête remplace $_GET['idlogin']) par $_GET['id'])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     include('config/serveur.php');
     
     if(isset($_GET['id'])){
     
     
        $id = $_GET['id'];
     
        	$query ="DELETE FROM login WHERE idlogin=".$id."";
        	$bdd=exec($query);
     
     
    		header ('Location:users.php');
     
     
    }

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    attention, il faut toujours échapper les données avant de les afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // échappement des caractères dangereux
    $hsc = function($p) { return htmlspecialchars($p, ENT_QUOTES, 'utf-8'); };
     
    // et ensuite partout où tu fais echo : 
    echo "<td>".$hsc($user->nom)."</td>";
    Enfin, il est obligatoire de soit sécuriser les requêtes SQL soit s'assurer du type de données qu'on passe au SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_GET['id'] // attendu entier
    // donc quand tu l'utilise sans préparer le SQL, tu dois FORCER le type pour des raisons de sécurité, comme ça :
    $id = (int)$_GET['id'];
    Sinon, il faut utiliser PDO et son mécanisme de préparation de requête

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    salut kalumbamic !
    merci de m'avoir répondu, je te rappel que ta méthode n'as pas marcher j'ai modifié la vue $_GET['idlogin']) par $_GET['id']) comme tu l'a dit mais cette fois ça renvoie une erreur et pour rappel le nom de l'id de ma table tlogin est idlogin. je essayer plusieurs méthodes mais aucune ligne n'est supprimer je ne sais pas ou se situe le problème.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    salut rawsrc !!
    merci pour le rappel

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Salut,

    vu ta ligne 33 $id= $user->idlogin; et vu la ligne 44 <a href='delete_user.php?id=$id'>Supprimer </a>, kalumbamic a raison dans son post #3 mais tort dans le post #2.
    Merci de donner la structure de ta table login, et je serais toi, je commencerais par tester ma requête SQL dans phpMyadmin...

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Bonjour laurentSc!
    voici la structure de ma table tlogin(idlogin, nom, prenom, fonction);
    et j'ai fait une petite modif sur la ligne 33 et 44; je ne sais si c'est comme ça que tu ma demandé de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php include('config/serveur.php'); ?>
     
    <html>
    <head>
     <meta charset ="utf-8">
     
     
    	<title>Utilisateurs</title>
    </head>
    <body class="container">
    	<?php 
            $sql 	= $bdd->query('SELECT * FROM login');
     $users = $sql->fetchAll(PDO::FETCH_OBJ);
     
     
     
    	 ?>
     
    <h3 class="text text-success text-center">Liste des utilisateurs</h3>
     <table>
     <tr>
     	<th>id</th>
     	<th>Nom</th>
     	<th>Prénom</th>
     	<th>Fonction</th>
    	<th>Action</th>
     
     </tr>
     	<?php
     
     		foreach ($users as $user) {
     		//	$id= $user->idlogin;
     			echo "<tr>";
     			echo "<td>".$user->idlogin."</td>";
     
     			echo "<td>".$user->nom."</td>";
     			echo "<td>".$user->prenom."</td>";
     			echo "<td>".$user->fonction."</td>";
     
     
     
     
                echo "<td><a href='delete_user.php?id=$user->idlogin'>Supprimer </a></td>";
     		         echo "</tr>";
     		}
     	 ?>
     </table>
     
    </body>
    </html>

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Je n'ai conseillé aucune modif de ton code, mais seulement fait une remarque ; cela dit, ta modif semble correcte ; par contre pour la structure de la table login, peux-tu faire plutôt un export depuis phpMyAdmin, ce qui serait plus complet (et permettrait de tester ton code).

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2016
    Messages : 30
    Points : 44
    Points
    44
    Par défaut
    Bonjour
    Essai de bien voir là où j ai mis les corrections
    C'est ne pas partout.

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2016
    Messages : 30
    Points : 44
    Points
    44
    Par défaut
    Donc dans le fichier de réception ce qui suit :
    La requête SQL reste : tel que tu l'avais avant
    Mais la variable _GET : tu me l'index : id
    Car c'est ce le lien envoit,

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2016
    Messages : 30
    Points : 44
    Points
    44
    Par défaut
    Si cela persiste. Met nous les nouveau code après toutes ces modifications

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Merci à tous !!
    j'ai vérifié et j'ai vue que mon problème c'est au niveau de ma réquete SQL

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    C'était pas ça la solution ? $query ="DELETE FROM login WHERE idlogin='".$id."'"; (je viens de réaliser...)

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    laurentSc merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un tableau serialize enregistré dans une bdd sous php
    Par Olispace dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/03/2017, 16h38
  2. Incrémenter une lettre pour enregistrement dans une bdd
    Par baggie dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2008, 16h26
  3. Réponses: 2
    Dernier message: 17/04/2007, 11h44
  4. [C#] Supprimer un enregistrement dans une BDD
    Par Filippo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/07/2006, 12h02
  5. Suppression d'un champ d'une bdd
    Par Kerod dans le forum C++Builder
    Réponses: 4
    Dernier message: 27/02/2006, 22h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo