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 :

Suppression d'un enregistrement


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lesitadom39
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2015
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 112
    Par défaut Suppression d'un enregistrement
    Bonsoir,
    Je bloque depuis plusieurs heures sur un formulaire permettant de créer une "alerte" dans un bandeau défilant (c'est pas le top, mais c'est ce que veut l'utilisateur)
    pour la création et la modification, c'est ok, mais c'est pour la suppression que ça coince !!
    Mon formulaire:
    Code php : 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
                                <div class="col-lg-11 mx-auto">
                                    <?php
                                    include 'connecpdo.php';
                                    $nRows = $connexion->query('select count(*) from avispopu2021')->fetchColumn();
                                    if ($nRows == 0) {
                                        ?>
                                        <h2 class="arrondi mb-3 ">Création annonce <br> "flash-info"</h2>
                                        <hr>
                                        <form name="insertion" action="ajoutavis2021.php" method="POST">
                                            <div class="form-group mb-3 bg-light rounded">
                                                <textarea class="form-control all" rows="5" name="text_avispopu_2021"
                                                          id="avis_popu"></textarea>
                                            </div>
                                            <button type="submit" name="creation"
                                                    class="btn btn-success btn-sm text-uppercase mb-2 rounded-pill shadow-sm">
                                                Création
                                            </button>
                                            <a href="<?php echo $_SERVER['HTTP_REFERER']; ?>"
                                               class="btn btn-success btn-sm rounded float-sm-right">Retour sans
                                                modification</a>
                                        </form>
                                        <hr>
                                        <?php
                                    }
                                    if ($nRows != 0) {
                                        $sql = 'SELECT text_avispopu_2021 FROM avispopu2021';
                                        $req = $connexion->query($sql);
                                        $req->setFetchMode(PDO::FETCH_ASSOC);
                                        foreach ($req as $row)
                                            ?>
                                            <h2 class="arrondi mb-3 ">Modification/Suppression Annonce <br> "flash-info"
                                            </h2>
                                            <hr>
                                            <form name="modifsup" action="modifsupavis2021.php" method="POST">
                                            <input type="hidden" name="id" value="<?= $row['text_avispopu_2021'] ?>">
                                        <div class="form-group mb-3 bg-light rounded">
                                            <textarea class="form-control all" rows="5" name="text_avispopu_2021"
                                                      id="avis_popu">  <?= $row['text_avispopu_2021'] ?></textarea>
                                        </div>
                                        <button type="submit" name="modifier"
                                                class="btn btn-success btn-sm text-uppercase mb-2 rounded-pill shadow-sm">
                                            Modification
                                        </button>
                                        <button type="submit" name="supprimer"
                                                class="btn btn-alert btn-sm text-uppercase mb-2 rounded-pill shadow-sm"
                                                OnClick="return confirm('Voulez-vous vraiment supprimer ?')" ;>Suppression
                                        </button>
                                        <a href="<?php echo $_SERVER['HTTP_REFERER']; ?>" class="btn btn-success btn-sm rounded
                                        float-sm-right">Retour sans modification</a>
                                        </form>
                                        <hr>
                                        <?php
                                    }
                                    ?>
                                </div>
    et le formulaire "action" correspondant à la modification/suppression
    Code php : 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
    <?php
    include 'connecpdo.php';
    $text_avispopu_2021 = $_POST["text_avispopu_2021"];
    //suppression d'enregistrement
    if (isset($_POST['supprimer'])) {
      $sql = "DELETE FROM avispopu2021 WHERE id = ?";
      $q = $connexion->prepare($sql);
      $response = $q->execute(array($id));
      header('Location: testmodifavispopu2021.php');
      exit();
      //modification d'enregistrement
    } elseif (isset($_POST['modifier'])) {
      $sql = 'UPDATE avispopu2021 SET text_avispopu_2021 ="'.($_POST['text_avispopu_2021']).'"';
      $sth = $connexion->exec($sql);
      $connexion = null;
      header('Location: testmodifavispopu2021.php');
      exit();
    } ?>
    Merci d'avance pour vos conseils

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Il ne connaît pas ton $id, qui n'est ni initialisé, ni affecté... C'est quoi, une variable de session que tu voudrais récupérer ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre confirmé Avatar de lesitadom39
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2015
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 112
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Il ne connaît pas ton $id, qui n'est ni initialisé, ni affecté... C'est quoi, une variable de session que tu voudrais récupérer ?
    Je peux marquer comme résolu : comme c'est un enregistrement unique (il n'y a qu'un message possible ) l'affichage) , j'ai finalement opté pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (isset($_POST['supprimer'])) {
      $sql = "DELETE FROM avispopu2021";
       $sth = $connexion->prepare($sql);
        $sth->execute();
      header('Location: testmodifavispopu2021.php');
      exit();
    }
    Merci

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Je ne comprends rien. Ta table ne comportera jamais qu'un enregistrement ? A quoi bon faire une table alors ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre confirmé Avatar de lesitadom39
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2015
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 112
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Je ne comprends rien. Ta table ne comportera jamais qu'un enregistrement ? A quoi bon faire une table alors ?
    Le Principe :
    C'est un "avis à la population" qui est affiché en haut de page si besoin
    J'ai une table avec un id et un champ texte. et il ne peut donc y avoir qu'un seul enregistrement qu sera affiché et qui annulera le précédent.
    Comment faire autrement?

  6. #6
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 896
    Par défaut
    Salut à tous.

    Déjà, il y a un truc que je ne comprends pas.
    Ce sujet se trouve dans le forum php alors que le lien dans l'email du soir m'indique qu'il se trouve dans le forum mysql.
    --> https://www.developpez.net/forums/d2...nregistrement/
    Je suppose que le sujet a été déplacé.

    S'il y a un seul enregistrement, il n'est pas nécessaire de faire un insert ou un delete, mais juste un update.

    Sinon, je suis du même avis que Dendrite, je ne vois pas trop l'utilité de créer une table ne contenant qu'un seule ligne.

    Je constate que votre table se nomme "avispopu2021".
    S'il elle ne possède qu'une ligne, pourquoi faire un "count(*)" ? En retour vous aurez toujours 1.

    Est-il utile de gérer cela dans un table ? Est-ce que votre gestion dure le temps de la session ?
    Si la réponse est oui, autant gérer cela en tant que variable de session.

    @+

  7. #7
    Membre confirmé Avatar de lesitadom39
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2015
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 112
    Par défaut
    L'avispopu, c'est un message qui peut rester afficher sur la page pendant plusieurs jours, donc pas lié à une session.

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

Discussions similaires

  1. Suppression d'un enregistrement
    Par charliejo dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/03/2006, 11h13
  2. [VB][rdo] Strategie de suppression massive d'enregistrements
    Par Bicky dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/10/2005, 14h12
  3. suppression automatique des enregistrements
    Par abdou.sahraoui dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/08/2005, 13h45
  4. [VB.NET]Suppression d'un enregistrement dans un DataGrid
    Par San Soussy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/06/2005, 10h30
  5. Suppression d'un enregistrement
    Par denisfavre dans le forum IHM
    Réponses: 3
    Dernier message: 04/10/2004, 11h03

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