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 :

Problème avec une requête SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de chobol
    Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 122
    Points
    122
    Par défaut Problème avec une requête SQL
    Bonjour,

    J'ai un petit problème avec une requete SQL dans une appli de gestion de parc informatique en php.
    Je crée la requete a partir du programme en php car la structure de la base peut évoluer (la structure est contenue dans un fichier xml)
    donc j'aimerais savoir (si vous pouvez m'aider) pourquoi ces 3 requetes fonctionnent très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $ReqId="INSERT INTO $Table(IdMachine)VALUES('$IdMachine')";
    if(!mysql_query(str_replace("<br>","",$ReqId)))echo "Requete Id Invalide!<br>";
     
     
    $ReqSaisieMan="INSERT INTO $Table($ChampSQL)VALUES(' ')";
    if(!mysql_query(str_replace("<br>","",$ReqSaisieMan))) echo "Requete Saisie Man Invalide<br>";
     
     
    $ReqVers="INSERT INTO $Table(Version)VALUES('1.01A')";
    if(!mysql_query(str_replace("<br>","",$ReqVers)))echo "Requete Vers Invalide<br>";
    alors que celle ci ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ReqInfo="INSERT INTO $Table($ChampSQL)VALUES('$Info')";
    if(!mysql_query(str_replace("<br>","",$ReqInfo)))echo "Requete Info Invalide<br>";
    J'espere que j'ai été suffisament clair!
    si ce n'est pas le cas je peux vous donner plus de précisions

    Je vous remercie d'avance pour votre aide

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    que donne un echo sur $ReqInfo...

    qu'est-ce que tu enteds par ça marche pas ? essaie de faire un appel à mysql_error()
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre régulier Avatar de chobol
    Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 122
    Points
    122
    Par défaut
    alors echo $ReqInfo donne (par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO base(Nom)VALUES('AQUARIUM2')
    et mysql_error retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Duplicate entry '' for key 1

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    pbm de doublon; tu essais d'inserer une valeur supposée unique deux fois
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    tu as une clé unique pour la quelle tu spécifies deux fois la même valeur...
    ça dépend de la structure de ta table
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  6. #6
    Membre régulier Avatar de chobol
    Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 122
    Points
    122
    Par défaut
    oki merci je vais regarder de ce coté là!

  7. #7
    Membre régulier Avatar de chobol
    Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 122
    Points
    122
    Par défaut
    alors en fait comme un gros nOOb que je suis j'essayais de creer chaque entree de ma base en plusieurs fois

    donc je pense qu'en faisant la requete de creation de chaque ligne en une seule fois ça devrait marcher un peu mieux!
    il ne me reste plus qu'a trouver comment "construire" la requete au fur et a mesure de l'execution de ma fonction...
    car le problème est que la base doit pouvoir etre modifier facilement a partir de 2 fichiers xml l'un contenant la structure de la base, l'autre indiquant ou aller recuperer les données (dans des fichiers CSV)
    (bah oui si la base n'était pas censée etre evolutive ça serait nettement moins drole)

  8. #8
    Membre régulier Avatar de chobol
    Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 122
    Points
    122
    Par défaut
    Re-Salut!

    Alors apres quelques modif de mon code je genere une requete SQL qui me semble correcte mais mysql_error me dit
    You have an error in your SQL syntax
    donc voici ma requete (enfin une de mes requetes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "INSERT INTO base(Version ,IdMachine,Nom,Etat) VALUES('1.01A','2004#0001','AQUARIUM2',' ')"
    d'avance merci de votre aide

  9. #9
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    tu as pas un peu plus complet comme message, en théorie il donne l'emplacement de l'erreur...
    ta requête a l'air correcte, essaie la dans phpMyAdmin par exemple, au pire, la seul erreur que je pourrais voir, c'est l'espace manquant entre VALUES et (
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  10. #10
    Membre régulier Avatar de chobol
    Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 122
    Points
    122
    Par défaut
    Alors le message d'erreur complet c'est

    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 '"INSERT INTO base (Version ,IdMachine,Nom,Etat) VALUES ('1.01A','2004#0001','AQU' at line 1
    et dans phpmyadmin ça dit
    Vous devez choisir au moins une colonne à afficher
    et pour ce qui est de l'espace ça ne change rien

    je ne comprend plus rien!

  11. #11
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Salut,

    à voir ton message d'erreur, je dirais que tu as laissé un " juste devant le INSERT.
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  12. #12
    Membre régulier Avatar de chobol
    Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 122
    Points
    122
    Par défaut
    ok merci !
    en fait j'étais persuadé qu'il fallait mettre la requete entre "
    donc ça a l'air de marcher un peu mieux mais j'ai toujours des erreurs je me pencherai là dessus après le repas!

    encore merci a tous et bon ap.

  13. #13
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par chobol
    en fait j'étais persuadé qu'il fallait mettre la requete entre "
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

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

Discussions similaires

  1. Problème avec une requête SQL en C#
    Par valebl dans le forum C#
    Réponses: 15
    Dernier message: 16/04/2008, 21h01
  2. Petit problème avec une requête SQL en VB6
    Par muzele dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 15/11/2007, 21h51
  3. Problème avec une requête sql
    Par mika0102 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 10/10/2007, 16h50
  4. [SQL] Problème avec une requête sql
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 11/05/2007, 18h30
  5. [VB]Problème avec une requête SQL
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/03/2006, 18h47

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