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 :

Insertion incorrecte au niveau d'un champ [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Par défaut Insertion incorrecte au niveau d'un champ
    Bonjour,

    Je suis en train de concevoir un site Internet php qui me servirait à gérer ma collection de jeux videos.
    Pour cela j'utilise Dreamweaver MX.

    J'ai créer une page comportant un formulaire d'insertion de donnée vers la base de donnée Mysql.

    Ce formulaire fonctionne bien sauf lorsque je veux insérer une image.

    lorsque le script php d'insertion est le suivant :

    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
    if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form2")) {
    $insertSQL = sprintf("INSERT INTO jeux (titre, date_d_achat, annee, spine_card, boite, code, notice, version, test, note, fun, musique, duree_de_vie, nb_joueurs, date_ins, idediteur, iddeveloppeur, idgenre, systemeID, screen01) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW(), %s, %s, %s, %s, %s)",
    GetSQLValueString($HTTP_POST_VARS['titrejeux'], "text"),
    GetSQLValueString($HTTP_POST_VARS['datedachat'], "date"),
    GetSQLValueString($HTTP_POST_VARS['anneesortie'], "text"),
    GetSQLValueString($HTTP_POST_VARS['spinecard'], "text"),
    GetSQLValueString($HTTP_POST_VARS['boite'], "int"),
    GetSQLValueString($HTTP_POST_VARS['code'], "text"),
    GetSQLValueString($HTTP_POST_VARS['notice'], "text"),
    GetSQLValueString($HTTP_POST_VARS['version'], "text"),
    GetSQLValueString($HTTP_POST_VARS['ajouttest'], "text"),
    GetSQLValueString($HTTP_POST_VARS['note'], "text"),
    GetSQLValueString($HTTP_POST_VARS['fun'], "text"),
    GetSQLValueString($HTTP_POST_VARS['musique'], "text"),
    GetSQLValueString($HTTP_POST_VARS['duree_de_vie'], "text"),
    GetSQLValueString($HTTP_POST_VARS['nbjoueur'], "text"),
    GetSQLValueString($HTTP_POST_VARS['ab'], "date"),
    GetSQLValueString($HTTP_POST_VARS['editeurjeux'], "int"),
    GetSQLValueString($HTTP_POST_VARS['developpeurjeux'], "int"),
    GetSQLValueString($HTTP_POST_VARS['genrejeu'], "text"),
    GetSQLValueString($HTTP_POST_VARS['systemejeu'], "int"),
    GetSQLValueString($HTTP_POST_VARS['screen1'], "text"));
    le champ sensé contenir le nom du fichier "screen1" (une photo en l'occurrence) se transforme en chiffre
    par exemple je souhaite insérer qqchose comme "c:\site\bb\bdimages\luards004.gif" j'aurais dans la base de donnée non pas "luards004.gif" mais un chiffre...

    Par contre si je remplace le "NOW()" contenu dans "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW(), %s, %s, %s, %s, %s)"," par un "%s" le problème n'apparait plus.
    Par contre cette fois ci la date du champ "date_ins" ne prend pas la valeur de la date du jour, mais une valeur au hasard...

    Quelqu'un peut-il m'aider svp ? (sachant que je ne maitrise pas des masses le langage informatique)

  2. #2
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonjour,
    Chaque "%s" correspond à une variable que tu trouves en dessous, sous la forme : GetSQLValueString($HTTP_POST_VARS['.........'], ".....").
    Pour moi, il faut enlever "NOW()" ...
    La variable qui sera donc prise en compte pour l'insertion dans le champs "date_ins" de ta table SQL sera :
    "GetSQLValueString($HTTP_POST_VARS['ab'], "date")".
    C'est donc, théoriquement, une variable que tu récupères par rapport à un champs de formulaire nommé "ab" qui a été rempli ou par rapport à un champs "hidden" nommé "ab" de ton formulaire.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Par défaut
    Oui en effet la variable "GetSQLValueString($HTTP_POST_VARS['ab'], "date")" sert à renseigner le champs date_ins.
    Mais je voudrais que ce champ (qui est une date) soit renseigné automatiquement à la date du jour. C'est pour cela que j'avais mis "NOW()".

    Mais comme précisé sur mon post précédent, ce NOW() semble perturber la variable "GetSQLValueString($HTTP_POST_VARS['screen1']" qui elle sert à insérer dans le champs "screen01" l'adresse d'une image.

  4. #4
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Ce champs "ab" se trouve où, dans ton formulaire ?
    Comment l'as tu renseigné ?

  5. #5
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Sinon tu peux faire comme ceci :
    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
     
    if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form2")) {
     
    $date_ins = date('Y-m-d'); // Variable $date_ins correspondant à la date du jour au format Anglais pour insertion dans la base
     
    $insertSQL = sprintf("INSERT INTO jeux (titre, date_d_achat, annee, spine_card, boite, code, notice, version, test, note, fun, musique, duree_de_vie, nb_joueurs, date_ins, idediteur, iddeveloppeur, idgenre, systemeID, screen01) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
    GetSQLValueString($HTTP_POST_VARS['titrejeux'], "text"),
    GetSQLValueString($HTTP_POST_VARS['datedachat'], "date"),
    GetSQLValueString($HTTP_POST_VARS['anneesortie'], "text"),
    GetSQLValueString($HTTP_POST_VARS['spinecard'], "text"),
    GetSQLValueString($HTTP_POST_VARS['boite'], "int"),
    GetSQLValueString($HTTP_POST_VARS['code'], "text"),
    GetSQLValueString($HTTP_POST_VARS['notice'], "text"),
    GetSQLValueString($HTTP_POST_VARS['version'], "text"),
    GetSQLValueString($HTTP_POST_VARS['ajouttest'], "text"),
    GetSQLValueString($HTTP_POST_VARS['note'], "text"),
    GetSQLValueString($HTTP_POST_VARS['fun'], "text"),
    GetSQLValueString($HTTP_POST_VARS['musique'], "text"),
    GetSQLValueString($HTTP_POST_VARS['duree_de_vie'], "text"),
    GetSQLValueString($HTTP_POST_VARS['nbjoueur'], "text"),
    $date_ins,
    GetSQLValueString($HTTP_POST_VARS['editeurjeux'], "int"),
    GetSQLValueString($HTTP_POST_VARS['developpeurjeux'], "int"),
    GetSQLValueString($HTTP_POST_VARS['genrejeu'], "text"),
    GetSQLValueString($HTTP_POST_VARS['systemejeu'], "int"),
    GetSQLValueString($HTTP_POST_VARS['screen1'], "text"));

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Par défaut
    Salut,

    Le script fonctionne, la date est bien insérée à la date du jour, mais par contre pour le champs censé contenir l'adresse de l'image (screen01) j'obtiens un nombre à 2 chiffres au lieu d'avoir le noms de l'image en .jpg ...

    Le problème ne proviendrait il pas du formulaire ?

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

Discussions similaires

  1. [MySQL] Insertion incorrecte de Valeur de champ formulaire
    Par marispark dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/08/2010, 23h05
  2. INSERT à partir d'un SELECT avec champ SERIAL
    Par bruno.wiesen dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/03/2007, 11h07
  3. Réponses: 3
    Dernier message: 09/01/2006, 16h19
  4. Réponses: 2
    Dernier message: 07/11/2005, 18h54
  5. Insertion d'un nombre dans un champs varchar ?
    Par Tchinkatchuk dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 07/04/2005, 15h17

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