Requête Delete qui ne fonctionne pas
Résolu/Fermé
A voir également:
- Requête Delete qui ne fonctionne pas
- Hiberfil.sys delete - Guide
- Just delete me - Guide
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Requête sql pix - Forum Python
3 réponses
jordane45
Messages postés
38390
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2025
4 730
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
23432
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 janvier 2025
1 559
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.