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] erreur de syntaxe dans une requete


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 53
    Points
    53
    Par défaut [SQL] erreur de syntaxe dans une requete
    Bonjour tous le monde, je pense avoir une erreur de syntaxe dan ma requete que voici:

    $reket="insert into ACIER ("REPERE_ID_ACIER", "COULEE", "NUANCE", "ACT_MATRICULE") values ('',$_POST['COULEE'], $_POST['NUANCE'],$act_matricule)";


    Voila l'erreur que j'obtient:

    Parse error: parse error in c:\program files\easyphp1-8\www\saisieacier\enregacier.php on line 69
    la ligne 69 corespond a la ligne de ma requete!

    Queelqu'un voit-il mon erreur? merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    $reket="insert into ACIER (COULEE, NUANCE, ACT_MATRICULE) values ('$_POST['COULEE']', '$_POST['NUANCE']','$act_matricule')";

    comme ça c'est mieu...

  3. #3
    mmz
    mmz est déconnecté
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 107
    Points : 100
    Points
    100
    Par défaut
    remplace ton code par celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $reket="insert into ACIER (REPERE_ID_ACIER, COULEE, NUANCE, ACT_MATRICULE) values (,$_POST['COULEE'], $_POST['NUANCE'],$act_matricule)";
    il faut aussi que tu mettes une valeur qui correspond au champ REPERE_ID_ACIER

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    il faut aussi que tu mettes une valeur qui correspond au champ [B]REPERE_ID_ACIER
    pas frocement si c'est un champ auto-increment

  5. #5
    Invité
    Invité(e)
    Par défaut
    fais ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reket="insert into ACIER ("REPERE_ID_ACIER", "COULEE", "NUANCE", "ACT_MATRICULE") values ('','".addslashes($_POST["COULEE"])."', '".addslashes($_POST["NUANCE"])."','".addslashes($act_matricule)."')";

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    +1 rbaatouc les addslashes t'evitera bien des erreurs!!!

  7. #7
    mmz
    mmz est déconnecté
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 107
    Points : 100
    Points
    100
    Par défaut
    oui c ça :
    si tu veux insérer seulement dans les trois champs COULEE, NUANCE, ACT_MATRICULE
    alors :
    $reket="insert into ACIER (COULEE, NUANCE, ACT_MATRICULE) values ('$_POST['COULEE']', '$_POST['NUANCE']','$act_matricule')";
    mais si tu veux insérer une valeur pour le champ REPERE_ID_ACIER, il faudra mettre cette valeur :
    $reket="insert into ACIER (REPERE_ID_ACIER,COULEE, NUANCE, ACT_MATRICULE) values (valeur,'$_POST['COULEE']', '$_POST['NUANCE']','$act_matricule')";

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mmz
    oui c ça :
    si tu veux insérer seulement dans les trois champs COULEE, NUANCE, ACT_MATRICULE
    alors :
    $reket="insert into ACIER (COULEE, NUANCE, ACT_MATRICULE) values ('$_POST['COULEE']', '$_POST['NUANCE']','$act_matricule')";
    mais si tu veux insérer une valeur pour le champ REPERE_ID_ACIER, il faudra mettre cette valeur :
    $reket="insert into ACIER (REPERE_ID_ACIER,COULEE, NUANCE, ACT_MATRICULE) values (valeur,'$_POST['COULEE']', '$_POST['NUANCE']','$act_matricule')";

    mauvaise réponse mmz; tu peux inserer sans préciser la valeur, si tu met tu met juste les apostrophes et que ton champ est en autoincrement(id de la table je pense que ça doit letre) alors ta requete crée un nouvel enregistrement avec lidentifiant quil faut automatiquement

  9. #9
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 53
    Points
    53
    Par défaut
    le champs repere-id-acier doit etre auto-incrementé.
    Je teste tous ce que vous m'avez dit et je vous tiens au courant. Merci pour toutes vos réponses

  10. #10
    mmz
    mmz est déconnecté
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 107
    Points : 100
    Points
    100
    Par défaut
    oui, désolé
    merci rbaatouc

  11. #11
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 53
    Points
    53
    Par défaut
    maintenant , j'ai cette erreur qui s'affiche:

    Warning: ibase_query(): Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 75 , in c:\program files\easyphp1-8\www\saisieacier\testclass.php on line 22

    je crois que le probleme de la requete est resolu et que cette n'erreur vient dautre chose????

  12. #12
    Invité
    Invité(e)
    Par défaut
    la requete est bonne lerreur vient de la façon donc tu lexecute montre ton code stp

  13. #13
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 53
    Points
    53
    Par défaut
    $reket="insert into ACIER (REPERE_ID_ACIER, COULEE, NUANCE, ACT_MATRICULE) values (,$coul,$nuance,$act_matricule)";
    $resultat=$db->query($reket);



    avec: $db = new inter; ou inter est une class:

    class inter {
    var $user;
    var $pass;
    var $hote;
    var $idconect;
    var $rez_id;

    function inter()
    {
    $this->idconect = ibase_connect('C:\Projet CREAS\SIC.GDK', 'SYSDBA' , 'masterkey');
    if (!$this->idconect)
    {
    echo ('Erreur connection Interbase');
    }
    }


    function query ($reket)
    {
    return $this->rez_id = ibase_query($reket,$this->idconect) ;
    }
    }

  14. #14
    Invité
    Invité(e)
    Par défaut
    tu peux mettre la balise code avec # et puis c''est quelle ligne la 22 dans ton fichier c:\program files\easyphp1-8\www\saisieacier\testclass.php

  15. #15
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 53
    Points
    53
    Par défaut
    toujours pas résolu....
    Voila ce ke tu mas demandé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    require("testclass.php");
    $db = new inter;
    $reket="insert into ACIER (REPERE_ID_ACIER, COULEE, NUANCE, ACT_MATRICULE) values (,$coul,$nuance,$act_matricule)";
    $resultat=$db->query($reket);

    testclass.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
    class inter {
    var $user;
    var $pass;
    var $hote;
    var $idconect;
    var $rez_id;
     
    function inter()
    {
    $this->idconect = ibase_connect('C:\Projet CREAS\SIC.GDK', 'SYSDBA' , 'masterkey');
    if (!$this->idconect)
    {
    echo ('Erreur connection Interbase');
    }
    }
     
     
    function query ($reket)
    {
    return $this->rez_id = ibase_query($reket,$this->idconect) ;//ligne 22
    }
    }

  16. #16
    Invité
    Invité(e)
    Par défaut
    peux ajouter ça a ton code pour voir lerreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function query ($reket)
    {
    return $this->rez_id = ibase_query($reket,$this->idconect) or die(ibase_errmsg());
    }
    et au passage c faux ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    require("testclass.php");
    $db = new inter;
    $reket="insert into ACIER (REPERE_ID_ACIER, COULEE, NUANCE, ACT_MATRICULE) values (,$coul,$nuance,$act_matricule)";
    $resultat=$db->query($reket);
    c'est pas ce quon ta donné comme solution; fais comme ça (en rouge les modifs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    require("testclass.php");
    $db = new inter;
    $reket="insert into ACIER (REPERE_ID_ACIER, COULEE, NUANCE, ACT_MATRICULE) values ('','".addslashes($coul)."','".addslashes($nuance)."','".addslashes($act_matricule)."')";
    $resultat=$db->query($reket);

  17. #17
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 53
    Points
    53
    Par défaut
    C BON CA MARCHE!!!!
    LA requete marche a merveille. Pour l'autre problème, le formulaire fonctionnait normallement lorsqu'il se trouvait dans le repertoire "www", mais quand il était dans un sous-dossier, plus rien ne marchait. Si quelqu'un a une explication a cela????
    Bref, l'essentiel c'est que ca marche.
    Merci a tous pour votre aide...

  18. #18
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    ba pb de chemin quan tapelle ton form surement

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

Discussions similaires

  1. Erreur de syntaxe dans une requête SQL
    Par Gabout dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 08/01/2008, 18h19
  2. Erreur de syntaxe dans une requete SQL
    Par fikou dans le forum VB.NET
    Réponses: 5
    Dernier message: 26/07/2007, 18h14
  3. Erreur de syntaxe dans une requête SQL
    Par amnesias dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/01/2007, 13h50
  4. [MySQL] probleme de syntaxe dans une requete sql
    Par jeanfrancois dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/03/2006, 11h54
  5. Erreur de syntaxe dans une requete
    Par linou dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/08/2005, 13h44

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