C variable dans une requete

Résolu/Fermé
Gaétan - 11 avril 2008 à 14:32
 Gaétan - 11 avril 2008 à 15:46
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

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
11 avril 2008 à 15:20
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
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
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
11 avril 2008 à 15:38
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
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