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 :

Update dans le CRUD. variable non définie [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut Update dans le CRUD. variable non définie
    Bonjour et salutations!

    Je n'arrive pas à inscrire dans la base de donnée par une mise a jour d'un id.
    ça indique la variable $contenu non défine dans cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $stmt->bindValue(':contenu', $contenu);
    Quelqu'un peut regarder pour voir c'est quoi mon erreur?

    Code : 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
     
            <?php
     
         include 'basedd.php';
     
        $id=isset($_GET['id']) ? $_GET['id'] : die('ERREUR: ID non trouvé');
     
             if($_POST){
     
            try{
                $query = "UPDATE mpages
                                SET contenu = :contenu
                                WHERE id = :id";
                $stmt = $con->prepare($query);
                $stmt->bindParam(':id', $id);
                $stmt->bindValue(':contenu', $contenu);
                if($stmt->execute()){
                    echo "Mise à jour de la page réussi.";
                }else{
                    echo "La mise à jour n'a pas réussi.";
                }
     
             }catch(PDOException $exception){
                die('ERREUR: ' . $exception->getMessage());
             }
        }
     
            try {
                    $query = "SELECT id, contenu FROM mpages WHERE id = ?";
                    $stmt = $con->prepare( $query );
                    $stmt->bindParam(1, $id);
                    $stmt->execute();
                    $row = $stmt->fetch(PDO::FETCH_ASSOC);
            }catch(PDOException $exception){
                    die('ERREUR: ' . $exception->getMessage());
            }
     
    ?>
            <form action='editeur.php?id=<?php echo $id; ?>' method='post'>
          <textarea name="contenu"><?php echo $row['contenu']; ?></textarea>
                <input type='submit' value='Save' />
            </form>
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  2. #2
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Tant qu'à avoir écris pour demander une solution et l'ayant trouvée, je vais en faire part.
    Je l'ai totalement réécris pour corriger l'ensemble du code.

    Mon but était de faire des mises à jour de certaines pages du site qui sont écrit dans la
    base de données pour avoir une certaine mise en page. En utilisant UPDATE plutôt que
    INSERT, ça m'évite de faire des ajouts d'enregistrement.

    Pour les failles de toute nature, le fichiers est réservé à l'administrateur de ces pages;
    pas ua public. L'éditeur HTML5 pour le textearea est génial puisque le résultat ressort
    avec des balises html5.

    Code : 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <!DOCTYPE html>
    <html lang="fr">
    <head>
     
            <title></title>
     
            <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
            <meta http-equiv="content-language" content="fr">
     
            <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Ruthie|Diplomata+SC|Great+Vibes|Nosifer|Sirin+Stencil|Vibur|Lilita+One|Mrs+Saint+Delafield|Audiowide|lobster|Raleway:100|Yellowtail|Niconne|Bowlby+One+SC|Monofett|Londrina+Outline|Oleo+Script|Metamorphous|Parisienne|Dorsa|Butterfly+Kids|Mrs+Sheppards|Yesteryear|Ruge+Boogie|Dr+Sugiyama|Emblema+One|Righteous|Shojumaru|Monoton|Plaster">
        <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
     
        <link rel="stylesheet" href="jquery.cleditor.css" />
        <script src="jquery.cleditor.min.js"></script>
     
        <script>
            $(document).ready(function() {
                $("#input").cleditor({
                    width: 800, // width not including margins, borders or padding
                    height: 400, // height not including margins, borders or padding
                });
            });
        </script>
     
    </head>
    <body>
     
      <table align="center"><!-- Centrer la page -->
          <tr>
              <td>
     
                    <h3 style="margin: 0 0 -20px 300px">:: Editeur de contenu ::</h3>
     
                    <?php
                    $id=isset($_GET['id']) ? $_GET['id'] : die('ERREUR: enregistrement non trouvé.');
     
                    include 'basedd.php';
     
                    if($_POST){
                        try{
                            $query = "UPDATE mpages
                                            SET contenu=:contenu
                                            WHERE id = :id";
                            $stmt = $con->prepare($query);
                            $stmt->bindParam(':contenu', $_POST['contenu']);
                            $stmt->bindParam(':id', $id);
                            if($stmt->execute()){
                                $updated= "<strong>Enregistrement mis à jour.</strong>";
                            }else{
                                echo 'Impossible de faire la mise à jour. Réessayez!';
                            }
                        }
                        catch(PDOException $exception){
                            die('ERROR: ' . $exception->getMessage());
                        }
                    }
     
                    $id=isset($_GET['id']) ? $_GET['id'] : die('ERREUR. enregistrement non trouvé');
     
                    try {
                        $query = "SELECT id, contenu FROM mpages WHERE id = ? LIMIT 0,1";
                        $stmt = $con->prepare( $query );
                        $stmt->bindParam(1, $id);
                        $stmt->execute();
                        $row = $stmt->fetch(PDO::FETCH_ASSOC);
                        $contenu = $row['contenu'];
                    }
     
                    catch(PDOException $exception){
                        die('Erreur: ' . $exception->getMessage());
                    }
     
                    if($stmt->rowCount() !== 0){
     
                    ?>
     
                        <div>Contenu ID: <strong><?php echo (int)$id; ?></strong></div>
     
                        <form action='update.php?id=<?php echo (int)$id; ?>' method='post' border='0'>
                                    <textarea id="input" type='text' name='contenu'><?php echo htmlspecialchars($contenu, ENT_QUOTES); ?></textarea>
                                    <input type='submit' value='Sauvegarder'></input>
                        </form>
     
                    <?php $updated=isset($updated) ? $updated : ""; } else { } ?>
     
                    <div style="margin-top: 20px"><strong>Résultat: </strong></div>
                    <div style="background-color:#eee;width:800px;border:1px double #ccc;padding:3px;overflow-x:auto"><?php echo $contenu; ?></div>
     
                        </td>
                </tr>
        </table><!-- Centrer la page -->
     
    </body>
    </html>
    Nom : img.jpg
Affichages : 115
Taille : 67,3 Ko
    On oublie souvent la simplicité ou la base dans la vie: Maslow

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/07/2015, 20h34
  2. Réponses: 5
    Dernier message: 28/08/2007, 11h42
  3. [SQL] Problème de variable non définies
    Par micka39 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 01/05/2007, 23h10
  4. Réponses: 12
    Dernier message: 10/05/2006, 14h02
  5. Problème de variable non définie
    Par Mimi Bulles dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 09h03

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