Partage
  • Partager sur Facebook
  • Partager sur Twitter

Update Bdd via Checkbox - PDO

Ajouter une valeur et Modifier une autre valeur via checkbox

Sujet résolu
    16 novembre 2018 à 23:17:08

    Bonjour,

    J'ai un petit soucis avec la création d'un système Lu / Non lu de Messages.
    Ma messagerie fonctionne bien, le soucis est que je souhaite créer un système de Lu / Non Lu.

    Le système actuel :

    J'envoie un message privé à une personne sur le site et ce message, dans la BDD et noté comme 'non lu' en BDD avec un numéro '1' et note 'NULL' le champs 'lu' de la BDD-> cette personne voit le message et il y a un petit numéro, qui compte les messages 'non lus', et jusque là, aucun soucis...

    Mais je n'arrive pas à faire un Update de la BDD, qui changerait le 'NULL' du Champs 'lu' en '1' et modifierait le '1' du 'Non Lu' en 'NULL' ou '0'.
    le tout en passant par une Checkbox.

    Voici le code de la checkbox (enfin ce que j'ai tenté de faire ^^ ):
    <form method="POST">
      <label for="lu"><input type="checkbox" name="lu" > LU ?</label>
      <input  type="submit">
      <?php 
        if(isset($_POST['lu']) ){
        $msg = $bdd->prepare('UPDATE messages  SET lu = 1 WHERE id_destinataire = ?  '); 
        }
      ?>
    </form>

    voici le code complet de la récupération du message :

     <?php if(isset($_GET['id'])) {
            ?>
            <?php if(isset($_SESSION['id']) AND !empty($_SESSION['id'])){
                $msg = $bdd->prepare('SELECT * FROM messages WHERE id_destinataire = ?');
                $msg->execute(array($_SESSION['id']));
                $msg_nbr = $msg->rowCount();
                while($m = $msg->fetch()){
                    $p_exp = $bdd->prepare('SELECT nom, prenom, email FROM utilisateurs WHERE id = ?');
                    $p_exp->execute(array($m['id_expediteur']));
                    $p_exp = $p_exp->fetch();
                    $p_exp = $p_exp['email'];
                    $pageCurrent = $_SERVER['PHP_SELF'];
                    
                    if($m['id'] == $_GET['id']){
                    ?>       
                    
                  
                    <div class="messageIn2">
                   
                    
                    <div class="message">
                    <a class="exp" target="new" href="./message.php?id=<?= $m['id'] ?>" >Message n° <?= $m['id'] ?>  de : <?= $p_exp; ?></a>
                    <br>
                    <br>
                    
                    <p class="exp">Message De : <?= $p_exp; ?></p>
                    <p class="sujet"><?= $m['titre'] ?></p>
                    <p class="mess"><?= $m['message'] ?></p>
                    <p class="date">à : <?= $m['date'] ?></p>
                    <br>
                        <form method="POST">
                            <label for="lu"><input type="checkbox" name="lu" > LU ?</label>
                            <input  type="submit">
                            <?php 
                            if(isset($_POST['lu']) ){
                                $msg = $bdd->prepare('UPDATE messages  SET lu = 1 WHERE id_destinataire = ?  '); 
                            }
                        ?>
                        </form>
       
                    <li <?php echo ($pageCurrent == 'Répondre') ? 'class="active"' : ''; ?>><a class="rep1 rep" href="messagerie.php#login">Répondre</a></li> 
      
                    </div>
                    <?php  
                        }
                    }
                }
            }
        ?>
    je m'y prends certainement très mal, mais je n'ai pas encore utilisé les UPDATE en PHP / PDO, du coup je bloque...

    Merci à ceux qui passeront sur ce sujet.

    EDIT : Résolu en faisant :

    <form method="POST">
                            <label for="lu"><input type="checkbox" name="lu" > LU ?</label>
                            <input  type="submit">
                            <?php 
                            if(isset($_POST['lu']) ){
                                $lu = $bdd->prepare('UPDATE messages SET lu = 1, nonlu = 0 WHERE id = ?');
                                $lu->execute(array($m['id']));
                            }
                        ?>


    -
    Edité par MiNiMan.8.6 17 novembre 2018 à 16:00:31

    • Partager sur Facebook
    • Partager sur Twitter

    Update Bdd via Checkbox - PDO

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown