Pb mysql INSERT

Bonjour à tous,

J'ai un petit soucis avec mon bout de code que voici :

mysql_query("
INSERT INTO commentaires(
CONTENT_COMM
, NO_NEWS
, AUTEUR_COMM
, TIME_COMM
, DATE_COMM
)
VALUES(
'" . $_POST["TB_CONTENT_COMM"] . "'
, '" . $_GET["id"] . "'
, '" . $_COOKIE["NOM_UTILISATEUR"] . "'
, CURTIME( )
, CURDATE( )
)
");

Sur les cinq valeurs, la 2e ne fonctionne apparemment pas, elle me renvoie 0 dans mon champs sql. J'ai pourtant bien un id dans ma barre d'adresse, et la valeur existe bien puisque quand je fais un echo $_GET["id"] j'ai bien la valeur correspondante.

Quelqu'un a t'il une idée?
Merci

Dans mon champs
Configuration: Windows XP
Safari 530.5

13 réponses

  • Votes
  • Date
  • Date décroissante
  1. Essaye d'enlever les apostrophes avant et après tes guillemets. Si c'est un entier qui est attendu il te refuse automatiquement le texte.

    Cdt
    1. Lorsque j'enlève les apostrophes, ça ne fonctionne plus. :'(
      1. Autant pour moi, enlève juste les apostrophes de $_GET["id"]
        (J'ai oublié de préciser ^^)
        1. C'est ce que j'avais fais :). Je suis toujours en erreur sql. Une autre idée ?
          1. Essaye comme ça:
            , " . $_GET["id"] . " 

            Les apostrophes autour de la valeur indique à mysql que c'est une chaine de caractère. s'il attend un nombre il mettra 0 comme il ne comprend pas.
            1. Avec les apostrophes j'ai aucun message d'erreur, la requête se passe apparemment bien. Juste la valeur inclus dans mon champs qui n'est pas celle que j'attend.

              Lorsque j'enlève les apostrophes, la requête ne fonctionne plus. Le or die me revoie cela :

              Erreur de connexion You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 'wbulot' , CURTIME( ) , CURDATE( ) ' at line 11

              Mon code actuel :

              (ligne 11) if(isset($_POST["BT_Envoyer"]))
              {
              connect_mysql();
              mysql_query("
              INSERT INTO commentaires(
              CONTENT_COMM
              , NO_NEWS
              , AUTEUR_COMM
              , TIME_COMM
              , DATE_COMM
              )
              VALUES(
              '" . $_POST["TB_CONTENT_COMM"] . "'
              , " . $_GET["id"] . "
              , '" . $_COOKIE["NOM_UTILISATEUR"] . "'
              , CURTIME( )
              , CURDATE( )
              )
              ") or die('Erreur de connexion '.mysql_error()) ;
              mysql_close();
              }

              $idnews = $_GET["id"];
              echo $idnews;

              Je rappelle que l'echo a la fin me renvoie bien la bonne valeur.

              Voici les info de mon champ:

              Champ Type Interclassement Attributs Null Défaut Extra Action
              NO_NEWS int(11) Non aucune

              Quelqu'un a une idée ?
              1. ben fais un echo de ta requete tu verras bien là où ca va pas ^^
                1. Ben ton erreur, elle est dans ta requête SQL
                  donc tu affiches ta requete, tu verras bien là où ca va pas :

                  tu fais un echo "
                  INSERT INTO commentaires(
                  CONTENT_COMM
                  , NO_NEWS
                  , AUTEUR_COMM
                  , TIME_COMM
                  , DATE_COMM
                  )
                  VALUES(
                  '" . $_POST["TB_CONTENT_COMM"] . "'
                  , " . $_GET["id"] . "
                  , '" . $_COOKIE["NOM_UTILISATEUR"] . "'
                  , CURTIME( )
                  , CURDATE( )
                  )
                  "
                  1. Heu t'es sur de toi?
                    Ça ne marche pas, et ça me parait un peu logique ...
                    1. Quoi ?
                      un affichage de marche pas ?
                      c'est pas fait pour "marcher", c'est fait pour voir là où est ton erreur dans ta requête -_-
                      1. J'ai trouver d'ou venait le problème. J'ai n'ai aucune idée de pourquoi ça réagit comme cela.

                        Actuellement j'ai un if qui me dit en gros, si j'appuis sur le bouton envoyer, ça exécute mon script. (le if est ligne 11, voir au dessus. )

                        Si je garde le même script, mais que j'enlève le if. Tout marche impec. Je ne comprend pas ...
                        1. Mdr

                          Normal que ça deconne. Un bouton ne renvoit rien donc lorsque tu fais ton $_POST['BT_envoyer'], ça ne passe pas ^^.

                          Test sur autre chose si tu peux ou envoie un autre paramêtre (un type hidden par exemple).