[C API-Mysql] Lister les tables

Résolu
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
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...
Configuration: Debian Sarge

2 réponses

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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