Requête Delete qui ne fonctionne pas
Résolu
philippef
-
philippef -
philippef -
Bonjour,
J'essaie de supprimer un enregistrement de ma bdd.
J'ai récupéré un code mais ça ne marche pas. Et je tourne depuis 2 h !!
$liste_nom contient l'id de l'enregistrement à supprimer
Merci de votre aide
J'essaie de supprimer un enregistrement de ma bdd.
J'ai récupéré un code mais ça ne marche pas. Et je tourne depuis 2 h !!
if (isset($_POST['yes'])){ $sql = $cnx->prepare("DELETE * FROM membres WHERE id = :id "); $sql->bindParam(':id', $liste_nom, PDO_PARAM_INT); $sql->execute(); }
$liste_nom contient l'id de l'enregistrement à supprimer
Merci de votre aide
Configuration: Windows / Chrome 79.0.3945.79
A voir également:
- *#9900# delete dumpstate/logcat
- Hiberfil.sys delete - Guide
- Juste delete me - Guide
- Delete boot option - Forum BIOS
- Delete dumpstate/logcat en francais - Forum Téléphones & tablettes Android
- *#9900# - Guide
3 réponses
Bonjour,
Commence par gérer les éventuelles erreurs :
Vu que tu es en PDO , appliques ce qui est indiqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et, également ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Reviens nous voir avec le code modifié et l'éventuel message d'erreur si ton souci persiste.
Commence par gérer les éventuelles erreurs :
Vu que tu es en PDO , appliques ce qui est indiqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et, également ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Reviens nous voir avec le code modifié et l'éventuel message d'erreur si ton souci persiste.
J'ai modifié ma requête et et le formulaire
le code de la page
le remplissage du <select> est correct.
quand je clique sur le bouton "afficher" tout se passe normalement.
quand je clique sur le bouton "oui" je récupère bien l'id passé dans l'url
et il s'affiche.
par contre j'obtient le message suivant :
le ligne est
Merci
pour info me css sera placé dans le fichier css
le code de la page
<?php include("connect.php"); $liste_nom = isset($_POST['liste_nom']) ? $_POST['liste_nom'] : ''; $identite = ''; $_GET['id']; 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; } } if ((isset($_POST['no'])) OR (isset($_POST['abandon']))){ $identite = ''; $liste_nom = ''; } if (isset($_POST['yes'])){ echo $_GET['id']; $sql = "DELETE * FROM membres WHERE id = :id "; try { $requete = $cnx->prepare($sql); $sql->bindParam(':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>
le remplissage du <select> est correct.
quand je clique sur le bouton "afficher" tout se passe normalement.
quand je clique sur le bouton "oui" je récupère bien l'id passé dans l'url
et il s'affiche.
par contre j'obtient le message suivant :
Fatal error: Call to a member function bindParam() on string in C:\Weblocal\Sites\Jumelage\fr\connexion\delmember.php on line 28
le ligne est
$sql->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
Merci
pour info me css sera placé dans le fichier css