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 :

probleme de requete [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Par défaut probleme de requete
    Bonjour à tous,
    J'ai un problème de requete sql et je n'arrive pa a trouver mon erreur,
    A l'intérieur toute mes variable php sont renseigné (vérifie avec un echo de ma requete)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query('insert into '.$base_glpi.'.glpi_computers ( ID, name, serial ,otherserial, contact, contact_num, tech_num, comments, date_mod, os, location, domain, network, model, type, is_template, tplname, FK_glpi_enterprise, deleted) VALUES ("", "'.$nom.'", 0, 0, "", 0, 0, "", '.today().' , '.$os_du_pc.' , '.$lieu_du_pc.' , '.$domaine_du_pc.', 0, NULL , '.$type_du_pc.' , 0, NULL , 0, N') or die ("pb");
    Voici la structure de ma table:

    `ID` int(11) NOT NULL auto_increment,
    `name` varchar(200) NOT NULL default '',
    `serial` varchar(200) NOT NULL default '',
    `otherserial` varchar(200) NOT NULL default '',
    `contact` varchar(90) NOT NULL default '',
    `contact_num` varchar(90) NOT NULL default '',
    `tech_num` int(11) NOT NULL default '0',
    `comments` text NOT NULL,
    `date_mod` datetime default NULL,
    `os` int(11) default NULL,
    `location` int(11) default NULL,
    `domain` int(11) NOT NULL default '0',
    `network` int(11) NOT NULL default '0',
    `model` int(11) default NULL,
    `type` int(11) default NULL,
    `is_template` enum('0','1') NOT NULL default '0',
    `tplname` varchar(200) default NULL,
    `FK_glpi_enterprise` int(11) NOT NULL default '0',
    `deleted` enum('Y','N') NOT NULL default 'N',

    Merci

  2. #2
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Par défaut
    quelle est ton erreur ?

  3. #3
    Membre chevronné Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Par défaut
    euh.. je t'avoue franchement, j'ai la flemme de lire toute ta requete mais tu peux deja commencer par un or die(mysql_error()) apres ta requete.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('insert into '.$base_glpi.'.glpi_computers ( ID, name, serial ,otherserial, contact, contact_num, tech_num, comments, date_mod, os, location, domain, network, model, type, is_template, tplname, FK_glpi_enterprise, deleted) VALUES ("", "'.$nom.'", 0, 0, "", 0, 0, "", '.today().' , '.$os_du_pc.' , '.$lieu_du_pc.' , '.$domaine_du_pc.', 0, NULL , '.$type_du_pc.' , 0, NULL , 0, N') or die ("pb".mysql_error());
    ensuite pour faciliter le débuggage, tu devrais mettre ta requete dans une chaine pour pouvoir faire un echo, afin de voir si la requete est celle que tu veux vraiment.
    Tu pourras apres faiure un copier coller de cette requete afficher dans phpmyadmin pour deceler les erreurs.

  4. #4
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Par défaut
    Voici mon erreur

    Erreur de syntaxe près de '' à la ligne 1

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Par défaut
    Quelqu'un pourrait me dire d'où vient mon erreur de syntaxe car je la trouve pas.

  6. #6
    Membre expérimenté
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Par défaut
    essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req="insert into '.$base_glpi.'.glpi_computers ( ID, name, serial ,otherserial, contact, contact_num, tech_num, comments, date_mod, os, location, domain, network, model, type, is_template, tplname, FK_glpi_enterprise, deleted) VALUES ("", "'.$nom.'", 0, 0, "", 0, 0, "", '.today().' , '.$os_du_pc.' , '.$lieu_du_pc.' , '.$domaine_du_pc.', 0, NULL , '.$type_du_pc.' , 0, NULL , 0, N";
    echo"$req";
    $res=mysql_query($req) or die ("pb".mysql_error());

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Une erreur de syntaxe, c'est quand même asez simple à trouver. Cela dit, de notre côté, si tu ne donnes pas la requête exacte, il sera difficile de t'aider.
    J'ai deux suppositions :
    • tu donnes le nom de la base de données, ce qui est inutile car tu y es déjà connecté : si ça se trouve, c'est une erreur
    • tu as mis "N" sans guillemets

  8. #8
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Par défaut
    Le problème vené du dernier champ il est de type enum et il necessité des guillemet.

  9. #9
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut
    je comfirm tu a pas mit de guillemet a la fin de ta requete pour le champ 'deleted'
    malheuresement c un erreur que tu aurra plus tard puisque ton erreur vien de la ligne 1 (sauf si ta requete et sur 1 seul ligne)
    et puis
    je croi que tu a pas besoin de faire un requete comme sa :
    insert into '.$base_glpi.'.glpi_computers ( ID, name, serial ,otherserial, contact, contact_num, tech_num, comments, date_mod, os, location, domain, network, model, type, is_template, tplname, FK_glpi_enterprise, deleted) VALUES ("", "'.$nom.'", 0, 0, "", 0, 0, "", '.today().' , '.$os_du_pc.' , '.$lieu_du_pc.' , '.$domaine_du_pc.', 0, NULL , '.$type_du_pc.' , 0, NULL , 0, N'
    il suffit de savoir l'orde de tes champs dans ta table, sa evite une requete impossible a lire
    met plutot (si je peu me permetre)
    insert into '.$base_glpi.'.glpi_computers VALUES ("", "'.$nom.'", 0, 0, "", 0, 0, "", '.today().' , '.$os_du_pc.' , '.$lieu_du_pc.' , '.$domaine_du_pc.', 0, NULL , '.$type_du_pc.' , 0, NULL , 0, N'
    ensuite comme dit le moderateur il faudrai que tu reqarde le nom de ta table et celui que tu met dans ta requête

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Citation Envoyé par funckfot
    il suffit de savoir l'orde de tes champs dans ta table, sa evite une requete impossible a lire
    Je réfute
    C'est une question de style, puisque les deux techniques sont possibles, mais je préfère tout indiquer. Cela permet d'être certain d'indiquer les champs dans le bon ordre, mais aussi de ne pas à avoir à regarder le MCD à chaque fois que tu vois une requête d'insertion.
    Par contre, il est toujours possible d'améliorer la présentation de la requête pour en faciliter un peu la lecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql =
    'INSERT INTO `glpi_computers`
       (`id`, `name`, `serial`, `otherserial`, `contact`, `contact_num`,
        `tech_num`, `comments`, `date_mod`, `os`, `location`, `domain`,
        `network`, `model`, `type`, `is_template`, `tplname`,
        `fk_glpi_enterprise`, `deleted`)
    VALUES
       ("", "'.$nom.'", 0, 0, "", 0,
        0, "", '.today().' , '.$os_du_pc.' , '.$lieu_du_pc.' , '.$domaine_du_pc.',
        0, NULL , '.$type_du_pc.' , 0, NULL ,
        0, "N"';
    Je le répète, c'est à chacun d'adopter une solution selon sa préférence.


    Citation Envoyé par funckfot
    ensuite comme dit le moderateur il faudrai que tu reqarde le nom de ta table et celui que tu met dans ta requête
    Ai-je parlé de nom de table ? Il me semblait avoir parlé de nom de base de donnés.

  11. #11
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut dsl
    en effet je me sui tromper puisque c pas le nom de la table c le nom de la base de donné
    je m'en escuse
    et puis d'ailleur l'erreur a été trouver donc j'ai ecri se message pour rien

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

Discussions similaires

  1. probleme de requete
    Par doudou1 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/04/2004, 13h42
  2. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45
  3. PROBLEME DE REQUETE IMBRIQUEE
    Par fleuve007 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/12/2003, 15h33
  4. probleme de requete
    Par LineLe dans le forum ASP
    Réponses: 8
    Dernier message: 17/09/2003, 16h47
  5. Probleme de requete
    Par misterbillyboy dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/07/2003, 08h24

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