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 :

[SQL] aucun ajout dans la base de donnée impossible


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut [SQL] aucun ajout dans la base de donnée impossible
    Bonjour a tous , voila j'ai un souçis avec un script de commentaire sur des news.
    le probleme ici ce n'est pas les messages d'erreur car je n'en ai pas .
    je vais dire c'est plutôt un script qui ne fais rien du tout lol .
    En fait lorsque je veux ajouter un commentaire et que j'ouvre la fenetre contenant le formulaire , je le remplis et j'envoi .
    Mais ensuite je veux voir les commentaires et il sont toujours indiquer a 0 .
    je me suis dit c'est peut etre un probleme d'affichage mais apperement je n'ecris rien dans la base de donnée et je me demande pour quel raison .
    La requête me semble correct ?
    Pour vous mettre sur la piste voici le script d'ajout de commentaire .

    ajout_commentaire.php :

    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
    se_connecter();
    if (isset($_POST['pseudo'], $_POST['message'], $_POST['id_news']) AND !empty($_POST['pseudo']) AND !empty($_POST['message']) AND !empty($_POST['id_news']))
    {
            // On asseptise les infos transmises par le formulaire
            $id_news = intval($_POST['id_news']);
            $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);
            //$message = htmlentities($_POST['message'], ENT_QUOTES);
            $message = htmlentities(addslashes($_POST['message']));
            // On insère le nouveau commentaire dans la BDD, en précisant l'id de la news à laquelle le commentaire appartient
            mysql_query('INSERT INTO commentaires (pseudo, message, idnews, timestamp) VALUES ("'.$pseudo.'", "'.$message.'", "'.$id_news.'", "'.time().'")') or die(mysql_error().__LINE__);
    }
    $id_news = intval($_GET['id_news']);
    mysql_close();
    ?>
    <h1>Ajouter votre commentaire</h1>
    <div style="padding-top:0%; padding-left:5%">
    <form method="post" action="ajout_commentaire.php">
    <table border="1">
            <tr><td style="background:#0099CC ">Pseudo : <input type="text" name="pseudo" size="30"/><br /></tr></td>
            <tr><td style="background:#0099CC "><textarea name="message" rows="5" cols="50"></textarea><br/></tr></td>
            <tr><td><input type="hidden" name="id_news" value="<?php echo $id_news; ?>" /></tr></td>
            <tr><td style="background:#0099CC "><input type="submit" value="Envoyer" />
            <input type="button" value="fermer" onClick="self.close()"></td></tr>
    </table>
    </form>
    </div>
    maintenant le script pour voir les commentaires associer a la news :
    commentaire.php:
    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
    <?php
    // ================================
    // Affichage de la news à commenter
    // ================================
    $id_news = intval($_GET['id_news']); // cette variable contient l'id de la news sur laquelle on veut voir les commentaires
     
    $requete = mysql_query('SELECT id, titre, contenu, pseudo, timestamp_validation FROM news WHERE id='.$id_news);
    $donneesnews = mysql_fetch_assoc($requete);
     
    /*
    Pareil que les autres fois, vous affichez ce que vous voulez concernant la news
    */
    // ======================
    // Début de la pagination
    // ======================
    $limit_par_page = 15; // On définit une variable pour dire combien de commentaires on veut par page
    if (isset($_GET['page']) && !empty($_GET['page']))
    {
            $page = intval($_GET['page']);
    }
    else
    {
            $page = 1;
    }
    $from = ($page - 1) * $limit_par_page;
    // =======================
    // Boucle des commentaires
    // =======================
    $requete = mysql_query('SELECT id, pseudo, message, timestamp FROM commentaires WHERE idnews='.$id_news.' LIMIT '.$from.', '.$limit_par_page);
    while($donnees = mysql_fetch_assoc($requete))
    {
            /*
            Vous affichez ce que vous voulez concernant les commentaires
            */
            print '<b>'.$donnees['pseudo'].'</b><br>';
            print $donnees['message'];
    }
    // ================================
    // Dernière partie de la pagination
    // ================================
    $requete = mysql_query('SELECT COUNT(id) AS nb_commentaires FROM commentaires WHERE idnews='.$id_news);
    $donnees = mysql_fetch_assoc($requete);
     
    $nb_pages = ceil($donnees['nb_commentaires'] / $limit_par_page);
     
    for ($i=1 ; $i<=$nb_pages ; $i++)
    {
            if ($i == $page)
            {
                    echo '['.$i.']';
            }
            else
            {
                    echo '<a href="commentaires.php?id_news='.$id_news.'&amp;page='.$i.'">'.$i.'</a>';
            }
    }
     
    mysql_close();
    ?>
    <script>
    function ouvrirfenetre(nomdefenetre){
    mafenetre=window.open(nomdefenetre,"nominterne","toolbar=no,directories=no,menubar=yes,status=no,height=300px,width=500px,top=200px,left=500px");
    mafenetre.focus()}//ou mettre fullscreen=yes
    </script>
    <a class="info" onclick="ouvrirfenetre('ajout_commentaire.php?id_news=<?php echo $id_news; ?>')">Ajouter un commentaire<span>Ajouter un commentaire</span></a>

  2. #2
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut
    ptete que ça marche avec c'que t'as fait mais t'as testé en remplaçant ton "bouton" par un submit ?
    Dia [ Page DVP ] [ Site pro ]

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    mais ce n'est pas un bouton , c'est bien un submit
    ptete que ça marche avec c'que t'as fait mais t'as testé en remplaçant ton "bouton" par un submit ?
    <input type="submit" value="Envoyer" />
    le bouton indiquer me sert pour fermer la fenêtre et non pour envoyer c'est pour cela que sa me tracasse de ne rien envoyer

  4. #4
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut
    Citation Envoyé par gtraxx
    mais ce n'est pas un bouton , c'est bien un submit
    toutes mes confuses, j'ai lu trop vite

    t'es sûr que c'est bien l'insertion qui se fait mal, et pas la lecture ?

    'SELECT id, titre, contenu, pseudo, timestamp_validation FROM news WHERE id='.$id_news

    en général je mets des quotes autour de la valeur du paramètre, essaie
    "SELECT id, titre, contenu, pseudo, timestamp_validation FROM news WHERE id='$id_news'"
    Dia [ Page DVP ] [ Site pro ]

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Ben pour etre sur je verifie a chaque fois dans phpmyadmin si la base se remplis et je n'ai aucune donnée d'inscrite
    pour ce faire il y as dans le script un code pour afficher le nombre de commentaire et bien entendu j'ai toujours 0 qui s'affiche
    pensez vous que c'est a cause de l'ordre dans ma table sql ??
    j'ai d'abord id,idnews,pseudo,message,timestamp Doit je modifier la requête sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('INSERT INTO commentaires (pseudo, message, idnews, timestamp) VALUES ("'.$pseudo.'", "'.$message.'", "'.$id_news.'", "'.time().'")') or die(mysql_error().__LINE__);
    Et changer l'ordre des INSERT ????

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Apres quelque test je me rend compte que je n'arrive pas a ecrire dans la base de donnée et non plus a lire les commentaires .
    En gros il se passe quelque chose avec les requetes ou les variables
    En mettant manuellement dans la base de donnée , un commentaire je n'ai rien qui s'affiche mais l'incrementation se fais bien .....????????
    Donc j'ai un souçis avec l'envoi et la lecture des commentaires

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    salut,

    déjà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (isset($_POST['pseudo'], $_POST['message'], $_POST['id_news']) AND !empty($_POST['pseudo']) AND !empty($_POST['message']) AND !empty($_POST['id_news']))
    je pense qu'il faut mieux mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     if (isset($_POST['pseudo']) AND ($_POST['message']) AND ($_POST['id_news']))
                          { if (!empty($_POST['message']) AND !empty($_POST['message']) AND !empty($_POST['id_news']))
                              {
                                    // On asseptise les infos transmises par le formulaire
            $id_news = intval($_POST['id_news']);
            $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);
            //$message = htmlentities($_POST['message'], ENT_QUOTES);
            $message = htmlentities(addslashes($_POST['message']));
            // On insère le nouveau commentaire dans la BDD, en précisant l'id de la news à laquelle le commentaire appartient
            mysql_query('INSERT INTO commentaires (pseudo, message, idnews, timestamp) VALUES ("'.$pseudo.'", "'.$message.'", "'.$id_news.'", "'.time().'")') or die(mysql_error().__LINE__);
                              }
    }
    c'est peut etre pour ça que rien n'est inséré..

Discussions similaires

  1. Ajouter dans la base de donnée my sql
    Par abbd dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/12/2008, 11h09
  2. [MySQL] Requête d'ajout dans la base de données
    Par poitierjohan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/09/2007, 11h11
  3. [Conception] insertion sql en php, dans une base de donnée ?
    Par artotal dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 24/10/2005, 04h34
  4. Ajout Dans une base de données
    Par belabyad dans le forum ASP
    Réponses: 8
    Dernier message: 11/03/2005, 13h25
  5. pb d'ajout dans une base de donnée
    Par loic.440 dans le forum ASP
    Réponses: 15
    Dernier message: 17/01/2005, 10h06

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