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

  1. #1
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    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>
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  2. #2
    Membre éclairé
    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
    Points : 708
    Points
    708
    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 confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    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
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    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é..

  5. #5
    Membre éclairé
    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
    Points : 708
    Points
    708
    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 ]

  6. #6
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    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 ????
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  7. #7
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    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
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

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