Requête Delete qui ne fonctionne pas
Résolu/Fermé
A voir également:
- Requête Delete qui ne fonctionne pas
- Just delete me - Guide
- Delete hiberfil.sys - Guide
- La requête graphql n’est pas autorisée facebook - Forum Facebook
- Delete cascade sql - Forum Programmation
- Delete avec jointure ✓ - Forum Bases de données
3 réponses
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
18 déc. 2019 à 11:28
18 déc. 2019 à 11:28
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
yg_be
Messages postés
22719
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 avril 2024
1 476
18 déc. 2019 à 13:52
18 déc. 2019 à 13:52
bonjour, tu ne nous montres qu'une partie du message d'erreur.
je pense qu'il faut remplacer $sql par $requete en 27 et 28.
je pense qu'il faut remplacer $sql par $requete en 27 et 28.