IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

probleme de recuperation des noms des colonnes d'une table (mysql)


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 11
    Points
    11
    Par défaut probleme de recuperation des noms des colonnes d'une table (mysql)
    Bonjour,

    j'ai une classe qui me permet de me connecté a une base de donnée mysql, la connexion marche très bien. lorsque je parcours le résultat avec l'indice de la colonne et sa marché. Maintenant j'essaye de travaillé avec le nom de la colonne de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    if (( mysql_query(myData, "SELECT * FROM professeur") == 0))
    			{
    				res = mysql_store_result(myData);
    				num_fields = mysql_num_fields(res);
    				fd = mysql_fetch_fields(res);
     
    				while ( (row = mysql_fetch_row(res)))
    				{				
    					for (j = 0; j < num_fields; j++)
    					{
    						//switch ( j )
    						//	{
    						//		case 0 :
    						//			profs_id = atoi(row[j]);
    						//			break;
    						//		case 1 :
    						//			profs_name = row[j];
    						//			break;
    						//		case 2 :
    						//			specialite = row[j];
    						//			break;
    						//		case 3 :
    						//			matiere_1 = atoi(row[j]);
    						//			break;
    						//		case 4 :
    						//			matiere_2 = atoi(row[j]);
    						//			break;
    						//		case 5 :
    						//			matiere_3 = atoi(row[j]);
    						//			break;
    						//		case 6 :
    						//			matiere_4 =  atoi(row[j]);
    						//			break;
    						//		case 7 :
    						//			profs_modifie_le = atol(row[j]);
    						//			break;
    						//		case 8 :
    						//			profs_modifie_par = row[j];
    						//			break;
    						//		default:
    						//			break;
    						//	}
     
    						if(fd[j].name == "ID")
    						{
    							profs_id = atoi(row[j]);
    						}
    						else if(fd[j].name == "name")
    						{
    							profs_name = row[j];
    						}
    						else if(fd[j].name == "specialite")
    						{
    							specialite = row[j];
    						}
    						else if(fd[j].name == "matiere_1")
    						{
    							matiere_1 = atoi(row[j]);
    						}
    						else if(fd[j].name == "matiere_2")
    						{
    							matiere_2 = atoi(row[j]);
    						}
    						else if(fd[j].name == "matiere_3" )
    						{
    							matiere_3 = atoi(row[j]);
    						}
    						else if(fd[j].name == "matiere_4")
    						{
    							matiere_4 =  atoi(row[j]);
    						}
    						else if(fd[j].name == "modifie_le")
    						{
    							profs_modifie_le = atol(row[j]);
    						}
    						else if(fd[j].name == "modifie_par")
    						{
    							profs_modifie_par = row[j];
    						}
    					}
     
    				}
    				mysql_free_result(res);
    			}
    le problème ce produit lord de la lecture du nom de la colonne. avec le debougague visuel je vois que le résultat du "fd[j].name" est du genre "0x04b368a8 "ID"" ou bien "0x04b56938 "spécialité"", ce qui fait que mon code ne fonctionne pas (j'arrive pas a savoir comment faire l'affectation de mes variable selon les noms des valeurs des colonnes de ma table professeur

    C'est très urgent.
    Merci a tout pour votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 042
    Points
    33 042
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    la comparaison de chaînes de caractères const char* n'est pas du tout de cette manière.
    Voir strcmp dans la FAQ C.
    Ainsi que la string C++.

    Le plus rapide/simple étant sûrement d'utiliser strcmp, mais en aucun cas un oéprateur == entre const char* n'existe. Le compilateur ne t'indique-t-il rien..?

  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Citation Envoyé par med_tijani Voir le message
    avec le debougague visuel
    pas mal celui là.


    Sinon atoi c'est aussi du C, il vaut mieux utiliser des ostringstream.

  4. #4
    Membre éclairé
    Avatar de Ekleog
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Points : 879
    Points
    879
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    [...]
    Sinon atoi c'est aussi du C, il vaut mieux utiliser des ostringstream.
    Et stoi, c'est du c++11, comme quoi ...
    [Edit : Se relire, c'est mieux ...]

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Citation Envoyé par Equinoxe_ Voir le message
    Et stoi, c'est du c++11, comme quoi ...
    Ben oui mais stoi n'est pas atoi. Et je ne suis pas sûr que proposer à une personne qui ne maîtrise pas la comparaison de chaîne d'activer C++11 (ou du moins les parties du tr1 dont il dispose) dans son compilo soit vraiment une bonne idée

    Cela dit bonne remarque, j'ai toujours trouvé ça pas peu pratique au possible les ostringstream (pour cette application en tout cas).

  6. #6
    Membre éclairé
    Avatar de Ekleog
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Points : 879
    Points
    879
    Par défaut
    C'est quand même le même principe.
    Ce qui prouve que le C++, dans son futur, retourne aux sources du C !
    (N'empêche, itoa est quand même tordu à utiliser, lui ...)

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/06/2014, 17h07
  2. Réponses: 4
    Dernier message: 26/03/2008, 09h43
  3. select des noms de colonne d'une table
    Par Juan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/09/2006, 15h14
  4. Récupérer des noms de fichiers dans une table ?
    Par florus dans le forum Access
    Réponses: 5
    Dernier message: 25/03/2006, 17h34
  5. Récupération des noms de champs d'une table
    Par Battomura dans le forum SQL
    Réponses: 2
    Dernier message: 24/03/2003, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo