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

PHP & Base de données Discussion :

Requête DELETE qui ne fonctionne pas.. [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut Requête DELETE qui ne fonctionne pas..
    Bonjour,

    Je viens demander de l'aide car je n'arrive pas à supprimer une valeur d'une colonne associée à un utilisateur..

    Pour commencer, j'ai une base de donnée comprenant des candidats, avec plusieurs colonnes dont une nommée "id_cv" qui comprend le nom du CV ainsi que son extension par exemple "1.pdf" pour le candidat possédant l'id 1 dans la BDD et tout est fonctionnel, je récupère bien le bon document pour chaque candidat auxquels sont attribués des documents sauf que je n'arrive pas à effectuer la requête DELETE que j'ai relié à un bouton "Supprimer" sur chaque profil de chaque candidat afin de pouvoir supprimer le CV présent dans cette colonne "id_cv" ..

    Code HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form method="post" action="edit.php">
        <input type="submit" class="btn btn-danger" style="width: 230px;" value="Supprimer" name="supprimer" onclick="return confirm('Êtes-vous sûr de vouloir supprimer le CV de ce candidat ?')"/><?php } ?>
        </div><br/><br/><br/><br/></form>
    Code PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      if (isset($_POST["supprimer"])) {
          $deletecv = $db->prepare('UPDATE BDD
                            SET id_cv= NULL,
                            WHERE Id= ?');
          $deletecv->execute(array($_POST['id']));
          header('Location: list.php');
      }
    Sachant que j'ai placer un petit input afin de poster l'id que je GET dans l'url de la page, après plusieurs tests, même en plaçant l'id de l'utilisateur dans une variable et en changeant cette requête, cela ne marchait pas..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id" value="<?php echo $id; ?>">
    Je vous remercie d'avance,

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ton bouton supprimer est dans son propre formulaire, donc il faut que l'input hidden soit aussi à l'intérieur du formulaire.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut
    Bonjour Celira, ah d'accord, j'ai tester du coup de rajouter l'input hidden dans le formulaire mais ça ne fonctionne pas.. ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method="post" action="edit.php">
        <input type="hidden" name="id" value="<?php echo $id; ?>">
        <input type="submit" class="btn btn-danger" style="width: 230px;" value="Supprimer" name="supprimer" onclick="return confirm('Êtes-vous sûr de vouloir supprimer le CV de ce candidat ?')"/><?php } ?>
        </div><br/><br/><br/><br/>
    </form>
    Au passage, désolé pour le titre "requête DELETE", j'aurais du mettre UPDATE, j'ai oublier que j'avais modifier depuis..

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par StrangerThings Voir le message
    ...plusieurs colonnes dont une nommée "id_cv" qui comprend le nom du CV ainsi que son extension par exemple "1.pdf"...
    Avoir une colonne qui s'appelle "id_cv" alors qu'elle contient le nom du fichier...

    Ce n'est pas faute d'avoir essayé de t'expliquer comment t'y prendre, mais tu n'en as tenu aucun compte.

    Malheureusement, quand tu ne comprends pas ce qu'on t'explique, tu continues sur ta lancée, tête baissée, le nez dans le guidon, sans tenir compte des conseils.
    Comme pour ton "système de tri"...

    Par conséquent : je passe mon tour.
    Bon courage.
    Dernière modification par Invité ; 03/10/2019 à 13h13.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu as d'autres formulaires dans la page ? Essaye de faire var_dump($_POST); dans ta page edit.php pour voir ce qui est réellement reçu (en désactivant la redirection, sinon tu ne vas pas voir grand chose )
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut
    Mais jreaux je n'ai pas suivi ton astuce mais tout est fonctionnel, je récupère le fichier, je le renomme en id + extension dans ma BDD ainsi que dans un répertoire cv crée au préalable sur mon ftp, quand j'ajoute un cv, c'est fonctionnel, il est bien relié à mon utilisateur et quand je rajoute un cv par dessus, l'ancien cv laisse bien place au nouveau donc pourquoi tout modifier alors qu'il est déjà fonctionnel ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ce n'est pas parce que "ça à l'air de marcher" que c'est la bonne méthode / conception.

    Tel que TU as fait, la table "CV" ne sert à rien.
    Autant la supprimer.

    Et APPRENDS à utiliser les formulaires : Les formulaires et PHP(5)
    C'est la base.

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut
    Citation Envoyé par Celira Voir le message
    Tu as d'autres formulaires dans la page ? Essaye de faire var_dump($_POST); dans ta page edit.php pour voir ce qui est réellement reçu (en désactivant la redirection, sinon tu ne vas pas voir grand chose )
    Oui c'est une page edit.php qui me sert à modifier chaque profil :/
    Du coup grâce à toi j'ai pu remarquer que le $_POST['id'] était bel et bien vide dans cette partie du code, du coup j'ai var_dump mon $_GET['id'] qui lui est bien présent et j'ai adapté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      if (isset($_POST["Supprimer"])) {
          $deletecv = $db->prepare('UPDATE BDD
                            SET id_cv= NULL,
                            WHERE Id= ?');
          $deletecv->execute($_GET['id']);
          header('Location: list.php');
      }
    Sauf que la redirection n'a pas lieu sûrement car la requête n'a pas lieu, je ne comprends pas d'où viens le problème sachant que je récupère bien l'id

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut
    Jreaux j'ai bel et bien supprimer la table CV depuis, et je ne vois pas le problème, j'ai une erreur dans mon code HTML ?

    Et j'imagine bien que la conception n'est pas top mais j'essaye de faire au mieux, tu m'as demandé d'essayer, la plupart du temps comme la recherche multi-critère je ne comprends pas certaines utilités de ton code donc je préfère essayer de coder un petit truc fonctionnel que je comprends en m'aidant d'internet et du forum sans reprendre un système complexe que je n'arrive pas à adapter à ma page :/

  10. #10
    Invité
    Invité(e)
    Par défaut
    1- Si tu as supprimé la table "CV", alors TOUT va bien !
    Dans ce cas, ta conception fonctionne : avec UN seul fichier PDF par user.

    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          $deletecv->execute($_GET['id']);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="edit.php">
    Je t'explique, ou tu vas trouver tout seul ?

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut
    1 - Yessss merci
    Effectivement comme tu l'as dis elle fonctionne qu'avec un CV par utilisateur, j'ai pas forcément besoin de plus pour le moment donc c'est parfait !

    2 - Oups
    J'ai modifier mes deux codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="GET" action="edit.php">
    ainsi que le code PHP où j'avais oublier le "array()" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      if (isset($_POST["Supprimer"])) {
          $deletecv = $db->prepare('UPDATE BDD
                            SET id_cv= NULL,
                            WHERE Id= ?');
          $deletecv->execute(array($_GET['id']));
          header('Location: list.php');
      }
    Malgrès ça, la redirection ne s'effectue toujours pas donc j'imagine qu'il y'a encore une erreur

  12. #12
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if (isset($_POST["Supprimer"])) {


    SERIEUX : LIS LE TUTO !

    Citation Envoyé par jreaux62 Voir le message
    Et APPRENDS à utiliser les formulaires : Les formulaires et PHP(5)

    N.B. Perso, je mets TOUS mes formulaires en POST.
    Car je ne vois pas l'intérêt d'afficher les paramètres dans l'URL.

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut
    Oops ahah

    J'ai suivi tes conseils habituellement je met en poste, par exemple pour tout les autres input de ma page je suis bien en $_POST mais malheureusement ça ne fonctionne pas pour cette tâche donc je ne comprends pas trop..

    De plus j'ai bien modifier en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET["Supprimer"])) {
    Et malheureusement je dois rater un truc mais la redirection ne s'effectue toujours pas, quand je var_dump dans le formulaire de suppression, la string vaut bien l'id de que je $_GET donc POURQUOI ?

    Peut-être une mauvaise syntaxe pour attribuer le NULL à mon id_cv ?

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bon.

    Soit tu cours chez l'ophtalmo, sois TU FAIS ATTENTION !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          <input type="submit" ... value="Supprimer" name="supprimer" .../>
    Le name est TOUT en MINUSCULES : "supprimer".

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET["supprimer"])) {

    N.B. Je vois que tu te moques complètement de mes conseils : quand je dis que je mets toujours en POST, toi tu mets en GET...

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Par défaut
    1 - Ahahahah, bah oui mince en plus j'ai modifier je ne sais pas pourquoi sachant que j'avais la bonne syntaxe au début, une erreur d'inattention

    2 - Je te rassure ça ne fonctionne pas quand même ahah mais d'un côté, on avance, la redirection est bien effectuée, maintenant le problème vient bel et bien de la syntaxe de la requête je pense..

    EDIT : Je passe ça en post tout de suite !

    Code HTML (avec un peu de PHP) pour le test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form method="POST" action="edit.php">
        <input type="hidden" name="id" value="<?php echo $id; ?>">
        <?php echo $_POST['id']; ?>
        <input type="submit" class="btn btn-danger" style="width: 230px;" value="Supprimer" name="supprimer" onclick="return confirm('Êtes-vous sûr de vouloir supprimer le CV de ce candidat ?')"/><?php } ?>
        </div><br/><br/><br/><br/>
    </form>
    Bon du coup j'ai bien passer en POST comme tu m'as demandé donc j'ai inclus le input pour récupérer le post en y injectant la valeur de $id (testé en y injectant $_GET['id'] mais non plus)
    Ca ne passe toujours pas, quand je var_dump, il m'affiche une erreur comme quoi il ne trouve pas "id" ..?

    Au niveau du code PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      if (isset($_POST["supprimer"])) {
          $deletecv = $db->prepare('UPDATE BDD
                            SET id_cv= NULL,
                            WHERE Id= ?');
          $deletecv->execute(array($_POST['id']));
          header('Location: list.php');
      }

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

Discussions similaires

  1. Requête hibernate qui ne fonctionne pas
    Par sheura dans le forum Hibernate
    Réponses: 4
    Dernier message: 28/09/2007, 16h20
  2. requête match qui ne fonctionne pas.
    Par sam01 dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/05/2006, 20h28
  3. [MySQL] Requête update qui ne fonctionne pas
    Par Sylvain245 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/12/2005, 16h40
  4. DELETE qui ne fonctionne pas
    Par pmboutteau dans le forum ASP
    Réponses: 9
    Dernier message: 14/10/2005, 13h50
  5. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10

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