Bonjour,
j'espère être sur le bon forum !!
Comme le titre l'indique je souhaite supprimer un enregistrement dans la bdd.
ci-dessous toute la page consacrée à la suppression d'un enregistrement
je récupère bien l'id à supprimer via l'url
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 <?php include("connect.php"); $liste_nom = isset($_POST['liste_nom']) ? $_POST['liste_nom'] : ''; $identite = ''; $_GET['id']; // récupère l'id passé dans l'url // on récuprère le nom et le prénom de la personne sélectionnée dans <SELECT> if (isset($_POST['afficher'])){ $sql = $cnx->prepare("SELECT * FROM membres WHERE id = ? "); $sql->execute(array($liste_nom)); $result = $sql->rowCount(); if ($result = $sql->fetch(PDO::FETCH_ASSOC)){ $id = $result['id']; $nom = $result['nom']; $prenom = $result['prenom']; $identite = $prenom.' '.$nom; } } // on remet les valeurs à blanc quand on clique sur les boutons 'NON' ou 'Abandonner' if ((isset($_POST['no'])) OR (isset($_POST['abandon']))){ $identite = ''; $liste_nom = ''; } // on supprime la ligne correspondant à l'id sélectionné lorsqu'on clique sur le bouton 'OUI' Mon problème est ici if (isset($_POST['yes'])){ echo $_GET['id']; $sql = "DELETE FROM membres WHERE id = :id "; try { $requete = $cnx->prepare($sql); $sql->bindValue(':id', $_GET['id'], PDO::PARAM_INT); $sql->execute(); } catch(Exception $e){ // en cas d'erreur dans la requete: echo " Erreur ! ".$e->getMessage(); } } ?> <div style="text-align:center;margin-left:auto;margin-right:auto;background-color:#FF7F00;width:80%;box-shadow:0.7em 0.7em 0.7em #CC5500;"> <p> <FORM name="research" ACTION = "index.php?page=delmember&id=<?php echo $liste_nom; ?>" METHOD="POST"> <br />Sélectionner dans la liste la personne à retirer de la liste des membres<br /><br /> <select name="liste_nom" size="10" style="width:20em;"> <!---<option value = "" selected>Sélectionner</option>---> <?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //préparation de la requête et des variables $sql = "SELECT * FROM membres WHERE nationalite = 'Française' ORDER BY nom, prenom"; try { $requete = $cnx->prepare($sql); $requete->execute(); $arr_membres = $requete->fetchAll();// on stocke le resultat de la requete dans un array } catch(Exception $e){ // en cas d'erreur dans la requete: echo " Erreur ! ".$e->getMessage(); } if(!empty($arr_membres)){ // on s'assure que la variable n'est pas vide foreach($arr_membres as $M){ // on boucle dessus à l'aide d'un foreach echo '<option value="'.$M['id'].'">'; echo $M['nom'].' '.$M['prenom'].'</option>';// on affiche les données } } ?> </select> <input style="cursor:pointer;" type="submit" name="afficher" value="Afficher" /><br /> <?php if (!empty($identite)){ ?> <p> <?php echo 'Voulez-vous vraiment retirer <b>';echo $identite; echo '</b> du fichier des membres du jumelage ?'; ?><br /><br /> <input style="cursor:pointer;" type="submit" name="yes" value="OUI" /> <input style="cursor:pointer;" type="submit" name="no" value="NON" /> <input style="cursor:pointer;" type="submit" name="abandon" value="Abandonner" /> </p> <?php } ?> </FORM><br /> </p> </div>
voici mon message d'erreur quand je clique sur le bouton "OUI"
la ligne 30 est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Fatal error: Call to a member function bindValue() on string in C:\Weblocal\Sites\Jumelage\fr\connexion\delmember.php on line 30
comme je ne pas familiarisé avec les requête paramétrées j'ai cherché mais je cale !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $sql->bindValue(':id', $_GET['id'], PDO::PARAM_INT);
pour info tout le css sera placé dans mon fichier css
merci pour votre aide
Partager