Numérotation tableau mysql [Résolu]

Messages postés
6
Date d'inscription
dimanche 21 décembre 2003
Statut
Membre
Dernière intervention
16 juillet 2013
- - Dernière réponse : BARA_Marie
Messages postés
6
Date d'inscription
dimanche 21 décembre 2003
Statut
Membre
Dernière intervention
16 juillet 2013
- 16 juil. 2013 à 15:50
Bonjour,

je débute avec MySQL en vs2010

j'utilise Visual studio, pour exécuter mes requêtes MySQL j'utilise ce principe, mais pour numéroter mon résultat dans un tableau cette requête ne fonctionne pas :

Chaine.Format(_T("SET @num=0; SELECT @num:=@num+1, id_terme FROM cui_terme ORDER BY nom_terme"));
int x = Chaine.GetLength() + 1;
char *Base = (char *)malloc( x );
size_t ix;
wcstombs_s(&ix, Base, x,Chaine, _TRUNCATE);
mysql_query(ConnexionMysql, Base);
Resultat = mysql_store_result(ConnexionMysql);

[:o)]Jean-Luc
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7
3
Merci
Ca veut dire qu'il y a une erreur dans ta deuxième requete. Essaie de faire comme ceci:
int ret;
ret=mysql_query(ConnexionMysql,"SET @num=0"); 
ret=mysql_query(ConnexionMysql,"SELECT @num:=@num+1, id_terme FROM cui_term ORDER BY nom_terme"); 
Normalement, mysql_query() retourne 0 quand il n'y a pas d'erreur dans la requete. Il faut donc t'assurer qu'elle retourne bien 0 pour ton deuxième appel.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7
0
Merci
Salut,
mysql_query() n'accepte qu'une seule requete par appel alors que tu en as deux dans ta chaine. Mets "SET @num=0" dans une première chaine puis appelle mysql_query(). Mets ensuite "SELECT @num:=@num+1, id_terme FROM cui_term ORDER BY nom_term" dans la chaine et fais un deuxième appel à mysql_query().
Commenter la réponse de racpp
Messages postés
6
Date d'inscription
dimanche 21 décembre 2003
Statut
Membre
Dernière intervention
16 juillet 2013
0
Merci
Bonsoir

désolé, j'ai essayé ta solution mais cela ne fonctionne pas.

[:o)]Jean-Luc
Commenter la réponse de BARA_Marie
Messages postés
6
Date d'inscription
dimanche 21 décembre 2003
Statut
Membre
Dernière intervention
16 juillet 2013
0
Merci
Voici ma solution après avoir revu mon code cela fonctionne

CString Chaine;
Chaine.Format(_T("set @num=0; "));
int x1 = Chaine.GetLength() + 1;
char *Base1 = (char *)malloc( x1 );
size_t   ix1;
wcstombs_s(&ix1, Base1, x1,Chaine, _TRUNCATE);
mysql_query(ConnexionMysql, Base1);
Chaine.Format(_T("SELECT Id_Terme, Nom_terme, @num:=@num+1 as Id_Ligne  FROM cui_terme ORDER BY nom_terme;"));
int x = Chaine.GetLength() + 1;
char *Base = (char *)malloc( x );
size_t   ix;
wcstombs_s(&ix, Base, x,Chaine, _TRUNCATE);
mysql_query(ConnexionMysql, Base);
Resultat = mysql_store_result(ConnexionMysql);


Merci encore
[:o)]Jean-Luc
Commenter la réponse de BARA_Marie