C variable dans une requete

Résolu
Gaétan -  
 Gaétan -
Bonjour,
je vais essayer d'être le plus bref et le plus précis possible.
Je programme en C par l'intermédiaire de dev-C++.
Cette ligne de code me pose problème

mysql_query(&mysql, "SELECT * FROM ma_table WHERE idchamp = ma_variable " );

L'erreur provient de 'ma_variable'. Si j'écris l'ID de mon champ directement en dur cela fonctionne :

mysql_query(&mysql, "SELECT * FROM ma_table WHERE idchamp = '5ff5' " );

En fait, je n arrive pas à faire en sorte que cela prenne le contenu de ma variable. J'ai beaucoup cherché sur internet et en particulier sur votre site. J ai donc essayé des syntaxes différentes comme
idchamp = ".5FF5." ou des choses de ce genre là maus rien à faire. :-(

Donc voici mes questions :
Est ce le type de ma variable qui peut faire merdouillé le code?
Est ce la syntaxe qui rendra le code fonctionnel par miracle?

Merci de votre aide :o)
A bientôt
Configuration: Windows 2000
Firefox 2.0.0.11

2 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    En C, la concaténation de chaînes se fait par strcat (à condition d'avoir bien inclus string.h).
    Donc tu dois faire
    char sql[100] = "SELECT * FROM ma_table WHERE idchamp = '";
    strcat(sql, ma_variable);
    strcat(sql, "'");
    mysql_query(&mysql, sql);

    Xavier
    0
    1. Gaétan
       
      Merci beaucoup de ta réponse Xavier.
      J ai bien inclu string.h.

      J ai une erreur malheureusement. La fonction strcat donc prendre des chaines de caracteres?
      Parce qu'en fait mon id est en string ( ce qui est sûrement une erreur).

      Merci encore

      Gaetan
      0
  2. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Tu veux dire que c'est le type String de C++ ?
    Mais en C, il n'y a que des tableaux de Char...

    Je ne sais absolument pas comment se gère les relations entre les deux (en fait je n'ai jamais fait de C++, et quasiment jamais de C...)
    0
    1. Gaétan
       
      Alors ça fonctionne. Merci beaucoup beaucoup Xavier.

      En fait j ai converti ma_variable qui, dans mon programme, était de type string (pour te ré"pondre oui c étaiyt le type string de C) en variable de type char par une petite manip.

      Il n'y a plus d'erreur une fois que ma_variable était de type char.

      Merci encore une fois, tu m'enlèves une jolie épine du pied!

      Bye bye, a une prochaine fois peut être!
      0