[C API-Mysql] Lister les tables

Résolu/Fermé
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 6 juin 2005 à 21:35
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 9 juin 2005 à 15:03
Bonjour,

J'ai un ptit problème avec l'API mysql de C

Pour une base de données nommées "loges", j'aimerais lister toutes les tables. Le problème c'est que mon code ne me renvoie pas le nom des tables mais ceci:
Tables_in_loges

Vous comprendrez mon desarroi :-)

Voici la source:
MYSQL mysql_handle;
MYSQL_FIELD *tables;
MYSQL_RES *result;
		
unsigned int nb_tables;
mysql_init(&mysql_handle);
		
// login est une structure avec mes identifiants...	if(!mysql_real_connect(&mysql_handle,login_datas.host,login_datas.user,login_datas.password,login_datas.database,3386,NULL,0))
{
	printf("Erreur\n");
}
		
result=mysql_list_tables(&mysql_handle,NULL);
if (result==NULL){
	printf("Raté\n");
}	

if (result)
{
	nb_tables=mysql_num_fields(result);
}		
tables=mysql_fetch_fields(result);
for (i=0;i<nb_tables;i++)
{
	printf("%s\n",tables[i]);
}


J'ai essayé avec mysql_query() avec la requête SHOW TABLES mais ça donne le même resultat. A votre avis, qu'est ce que j'ai mal fait? :-)

...sachant que j'ai vérifié: la connexion se fait bien, et la requête aussi....

Merci d'avance...

2 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
9 juin 2005 à 15:03
Problème résolu sur comp.lang.c , il ne faut pas utiliser mysql_fetch_fields car ça sert pour la "définition de champ d'une colonne dans le jeu de résultats. "
http://dev.mysql.com/doc/mysql/fr/mysql-fetch-fields.html

Il faut utiliser mysql_fetch_row() pour récupérer les resultats...

Voilà voilà :-)
1
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
8 juin 2005 à 14:28
Bonjour,

Je reviens faire un ptit up.
J'en profite pour faire une petite correction, la structure avec mes identifiants ce n'est pas login mais login_datas (mais ça ne change rien, la connexion à la base fonctionne de tout façon).

Je reprécise un peu mon problème (j'ai un peu expliqué à la va-vite)
Donc j'ai une base nommée loges avec quelques tables dedans.
J'aimerais lister leurs noms dans la sortie standard avec printf()

Le soucis c'est que au lieu de voir s'afficher:
nom_table1
nom_table2
nom_table3 
etc...

J'ai:
tables_in_loges

Et je ne trouve pas l'endroit ou j'aurais pu faire une mauvaise manip...

Remerci d'avance :-)
0