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

C++ Discussion :

problème de reconnaissance de champs dans clause where


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 117
    Points : 46
    Points
    46
    Par défaut problème de reconnaissance de champs dans clause where
    Salut à tous,
    Voilà mon problème, je cherche à recupérer le champs id_bouquet de la table bouquet de ma base de données à la condition qie le champs id_chambre de la même table soit égal à id_ch variable que j'ai extrait à priori... voyez plutôt..
    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
    requete="select id_chambre FROM chambres";
    if (result=connectionSql(requete))
    {
       myRow = mysql_fetch_row(result);
       id_ch=atoi(myRow[0]);
       cout<<"L'identifiant de la chambre :"<<chambre<<endl;
       requete="select cl.id_bouquet FROM clients cl WHERE cl.id_chambre= id_ch ";
       if (result=connectionSql(requete))
          {
    	myRow = mysql_fetch_row(result);
    	id_booq=atoi(myRow[0]);
    	cout<<id_booq<<endl;
         }
    }
    Le problème c'est que ça me renvoit la ligne d'erreur suivante :
    champs id_ch inconnu dans clause where
    Qu'est ce qui ne va pas dans mon code (notamment la partie en rouge)

    Merci bp à tous et bonne journée!!!!

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    Dans la clause
    FROM clients cl
    il manque AS

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 117
    Points : 46
    Points
    46
    Par défaut
    Merci pour ta réponse jeremya, mais ça ne marche pas, j'ai toujours la même erreur...

    Merci de m'aider

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Je ne connais pas l'opérateur de concaténation que vous devez utiliser car je ne connais pas votre SGBD et votre langage client (cf les règles du forum) ; j'ai donc supposé que c'est "+".
    Essayez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    requete="select cl.id_bouquet FROM clients cl WHERE cl.id_chambre=" + id_ch;
    ...
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 117
    Points : 46
    Points
    46
    Par défaut
    Désolée de na pas avoir donner plus de précisions :
    j'utilise le langage sql avec du c++ et une BD MySql...

    Pour ce qui est des modifications que vous m'avez proposé, ça ne marche pas...ça me renvoie toujours un message d'erreur sauf que cette fois ci c'est toute la requête qui n'est pas reconnue...

    Merci bp de m'aider ...

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Et... quel est l'opérateur de concaténation en C++ ?
    Si vous avez utilisé "+" et que ce n'est pas celui-ci alors cela peut justifier votre nouveau message d'erreur.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 48
    Points : 54
    Points
    54
    Par défaut etonnant
    Bonjour,

    La réponse de Magnus semble correcte à moins que tu n'est pas la surcharge de l'opérateur + pour les flux (ceci est étonnant).
    Tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    requete="select cl.id_bouquet FROM clients cl WHERE cl.id_chambre="  + myRow[0];
    ...
    A+

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 117
    Points : 46
    Points
    46
    Par défaut
    Ca ne marche pas non plus, le compilateur me renvoit un message d'erreur comme quoi il ne reconnait pas la requête...

    Merci pour votre patience, auriez vous d'autres solutions....

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    Si j'ai bien compris, tu cherche à obtenir l'id_bouquet d'un client dont l'id_chambre existe dans la table chambres.

    Dans ce cas, tu peut l'obtenir en 1 seule requête en utilisant une jointure.
    La requête SQL ressemblera donc à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select id_bouquet
    FROM clients
     INNER JOIN chambres
      ON clients.id_chambre=chambres.id_chambre
    Si cette requête ne fonctionne pas, dis-nous ce que t'obtiens comme résultats.
    Si t'obtiens un message d'erreur, précise le.

    j'utilise le langage sql avec du c++ et une BD MySql...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete="... WHERE cl.id_chambre="  + myRow[0];
    Pour savoir comment concaténer des chaînes de caractères en C++, tu peux consulter des tutoriaux C++.

    Comme tu te situes dans le forum SQL, contente-toi des problèmes de requêtes SQL.
    Pour la manipulation des strings en C++, le forum correspondant peut t'être utile.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/06/2014, 10h25
  2. Problème avec fonction "Now" dans clause Where
    Par moilou2 dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/07/2008, 18h44
  3. Problème dans clause WHERE
    Par tribaleur dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/03/2008, 07h39
  4. INNER JOIN ... ON ... ou jointure dans clause where
    Par schmur1 dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 28/06/2005, 09h16
  5. 2 champs dans un where , possible en sql server ?
    Par voyageur dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 19/10/2004, 05h01

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