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 :

Formulaire ramenant que la valueur null dans ma base de données [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut Formulaire ramenant que la valueur null dans ma base de données
    Bonjour,

    J'essaye de faire une page commentaire.
    Il faut que la personne soit loggée avant de pouvoir laisser un commentaire.
    Mon formulaire et l'envoi des données sont sur la même page.
    Mais lorsque je laisse un commentaire, une ligne est bien créée dans ma base mais elle est vierge.
    Ma table comprend les champs: id, id_news, commentaire, auteur, date_commentaire.

    Je pense que les données envoyées n'ont pas récupérées les valeurs du formulaires, mais je n'arrive pas a trouver l'erreur.
    Pouvez vous m'aider?
    Voici mon code:
    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
      <?php
    			//VARIABLES GENERALES
    include("espace_membres/data.php");
    global $dbserver;
    global $dbdb;
    global $dbuser;
    global $dbpass;
    //CONNEXION A LA BASE DE DONNEES
    $base = @MYSQL_CONNECT ("$dbserver","$dbuser","$dbpass") or die ("<p>Erreur: impossible de communiquer avec la base de donn&eacute;es.<br>V&eacute;rifiez les donn&eacute;s du fichier <b>data.php</b>.</p>");
    mysql_select_db("dbdb",$base);
     
    // lancement de la requête. on sélectionne les commentaires que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)  
    $result=mysql_query('SELECT * FROM news WHERE id="'.$_GET['news'].'"'); 
     
     
     
        while ($data = mysql_fetch_array($result)) { 
     
           // on décompose la date 
           sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec); 
     
     
           // on affiche les résultats 
           echo'<p>'.htmlentities(trim($data['titre'])).':'.'<br>'.'</p>';
    	    echo'<ul>'.htmlentities(trim($data['contenu'])).'<br>'.'</ul>'; 
     
      } ?>
     
    <h2>Commentaires</h2>
     
    <?php
     
    // Récupération des commentaires
    $req=mysql_query('SELECT * FROM commentaires_news WHERE id_news="'.$_GET['news'].'"');
    $nb_news = mysql_num_rows($req);  
     
    if ($nb_news == 0) { 
     
    	?>
    	   <a href="commentaires_poussins.php?news=<?php echo $data['id'];
     }  
     else { 
        // si on a au moins une news, on l'affiche 
        while ($data = mysql_fetch_array($req)) { 
    	?>
     
     
    </div><div class="bas_ng"></div> <!-- FIN GRAND CADRE-->
     <div class="haut_ng"></div><!-- GRAND CADRE-->
    <div class="fond_ng"><br />
    <strong><?php echo htmlspecialchars($data['auteur']); ?></strong> le <?php echo $data['date_commentaire']; ?><br />
    <?php echo nl2br(htmlspecialchars($data['commentaire'])); 
    }
    }?>
    <br />
    </div><div class="bas_ng"></div> <!-- FIN GRAND CADRE-->	
     <div class="haut_ng"></div><!-- GRAND CADRE-->
    <div class="fond_ng">
     <!-- CONNECTION -->
     
    <?php
     
     
     
     
    // verification si le membre est connecté
    if (!$pun_user['is_guest'])
    {
    ?>
    Bienvenue <?php
     echo $pun_user['username'];
     // On place les informations dans des variables simples
     
     
    	$auteur = $pun_user['realname'];
    	$date_commentaire = time();
    	$id_news = $data['id_news']; // Cette variable va servir pour se souvenir que c'est une modification ?>
      <form action="commentaires_poussins.php" method="post">
     
     
       <p> Commentaire :</p>
        <textarea name="commentaire"><?php echo $commentaire; ?></textarea><br />
        <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
        <input type="hidden" name="nom" value="<?php echo $auteur; ?>" />
        <input type="hidden" name="date" value="<?php echo $date_commentaire; ?>" />
        <input type="submit" value="Envoyer" name="envoyer" />
     
    </p>
    </form>
     
    <?php // envoi des données dans la base de données
     if($_POST['envoyer'])
    {
           $sql = "INSERT INTO commentaires_news
    VALUES('','$id_news','$auteur','$commentaire','$date_commentaire')";
    mysql_query($sql)
    or die('Erreur SQL !'.$sql.'
    '.mysql_error());
     
    echo 'merci beaucoup, vos commentaires ont ete enregistres.';
    mysql_close();
     
        }
    }
    else
    {
     ?>
    Vous devez vous identifier pour mettre un comemntaire
    <form action="./forum/login.php?action=in" method="post">
        <fieldset>
    	<input type="hidden" name="form_sent" value="1" />
    	<input type="hidden" name="redirect_url" value="../commentaires_poussins.php" />
     
    	<p><label>Nom d'utilisateur<input type="text" name="req_username" size="13" maxlength="25" /></label></p>
    	<p><label><strong>Mot de passe</strong><input type="password" name="req_password" size="13" maxlength="16" /></label></p>
     
    	<input type="submit" name="login" value="Connexion" />
        </fieldset>
    </form>
    <?php
     
    }?>


    Seb

    Ps: excusez moi d'avance pour ce code mal écrit.

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonjour,

    aprés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...if($_POST['envoyer'])...
    mets un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    {
    pour voir ce que tu récupéres comme données de ton formulaire.

  3. #3
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Citation Envoyé par syl2095 Voir le message
    Bonjour,

    aprés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...if($_POST['envoyer'])...
    mets un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    {
    pour voir ce que tu récupéres comme données de ton formulaire.
    voila ce qui est récupéré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Array
    (
        [commentaire] => alors
        [id_news] => 10
        [auteur] => seb
        [date_commentaire] => 1288001250
        [envoyer] => Envoyer
    )
    l'id news, est récupéré en changeant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_news = $_GET['news'];
    .
    Merci de me venir en aide syl2095

  4. #4
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Tu dois peut être perdre ton $_GET quand tu submit...

    essayes de mettre dans ton action de form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commentaires_poussins.php?news=<?php echo $_GET['news']

  5. #5
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Citation Envoyé par syl2095 Voir le message
    Tu dois peut être perdre ton $_GET quand tu submit...

    essayes de mettre dans ton action de form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commentaires_poussins.php?news=<?php echo $_GET['news']
    En fait je viens de m'apercevoir que j'utilise déja $_get pour afficher les commentaires par rapport à l'autre page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Récupération des commentaires
    $req=mysql_query('SELECT * FROM commentaires_news WHERE id_news="'.$_GET['news'].'"');
    $nb_news = mysql_num_rows($req);
    Puis je utiliser 2 fois GET ou y a t'il un autre moyen?

    Merci

  6. #6
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    si tu submit ton formulaire actuel, tu vas perdre ton $_GET puisque tu appelles uniquement commentaires_poussins.php

    tu peux utiliser get autant de fois que tu veux mais tu dois la faire suivre dans ton url pour pas la perdre.

    J'ai un peu de mal à déchiffrer ton code ..

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

Discussions similaires

  1. [MySQL] Passer d'un formulaire simple à la mise en place dans la base de données
    Par alex28240 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/01/2009, 16h01
  2. test si valeur=Null dans la base de donnée
    Par inessa dans le forum Accès aux données
    Réponses: 2
    Dernier message: 19/04/2007, 15h45
  3. Comment enregistrer dates NULL dans la base de données ?
    Par Arfigado dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/09/2006, 17h58
  4. Réponses: 1
    Dernier message: 30/07/2006, 11h49
  5. [Conception] formulaire et case à cocher et recherche dans une base de donnée
    Par olivier_1970 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 25/06/2006, 01h03

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