begin process at 2012 05 30 06:47:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Base de données

 > 

SQL

 > 

Récupérer résultat d'une requête SQL dans un tableau?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupérer résultat d'une requête SQL dans un tableau?

mardi 23 mars 2010 à 15:39:25 | Récupérer résultat d'une requête SQL dans un tableau?

Juju1988

Bonjour

Je débute en C et je cherche à récupérer le résultat de ma requête SQL dans un tableau en C. Je crois qu'il faut utiliser mysql_fetch_row ... mais je ne sais pas trop comment faire ...

if (mysql_query(sock,query))
{
char *tmp;

TRACE2("TestFTwithUsername : Couldn't select to mysql (%s)\n %s\n",mysql_error(mysql),query);
tmp = "E fwcvs: Couldn't find FT in the database.\n";
envoiebuf(CLNTOUTPUT,tmp,strlen(tmp));
free(query);
mysql_close(mysql);
return 0;
}
else
{
res = mysql_store_result(sock);
row = mysql_fetch_row(res);
str = strdup(*row);
int nblignes = mysql_num_rows(res);
TRACE1("NB Lignes : %d\n", nblignes);
for(j = 0; j <= mysql_num_rows(res); j++)
{
sprintf(str,"%s", row[j]);
TRACE1("STR : %s\n",str);
}
}

Ma partie concerne le else ... si mysql_query OK alors je veux récupérer dans un tableau mes résultats de ma requête ... J'ai besoin que d'une seule colonne mais je peux avoir plusieurs lignes.

Puis je veux parcourir mon tableau et le comparer à un numFT ...

A force de tester différentes manières je ne sais plus où j'en suis ...

Merci d'avance pour votre lanterne
mardi 23 mars 2010 à 17:08:16 | Re : Récupérer résultat d'une requête SQL dans un tableau?

fregolo52

Membre Club
salut,

Pour faire du mysql en C de temps en temps j'allais voir l'aide php (c'est quasi pareil).
Là tu dois utiliser mysql-fetch-array (j'ai cherché tres vite, donc je n'ai pas vu l'aide de l'api c).
mardi 23 mars 2010 à 17:16:02 | Re : Récupérer résultat d'une requête SQL dans un tableau?

fregolo52

Membre Club
oups j'ai répondu un peu vite.

si j'ai bien compris :
row[0] est le 1er élément de la ligne
row[1] est le 2e élément de la ligne

dans ton code j''ai l'impression que pour toi (dans ta boucle for) row[1] est la 2e ligne.

donc fait un while avec mysql_fetch_array pour avoir toutes les lignes, au lieu de faire ta boucle for.

Il y a peut-etre mieux, je connais mal mysql.
lundi 29 mars 2010 à 09:00:07 | Re : Récupérer résultat d'une requête SQL dans un tableau?

Juju1988

Oui pour moi row[1] était ma deuxième ligne c'est faux?

J'ai testé avec mysql_fetch_array mais j'ai pas l'impression que ce soit utilisable en C. J'avais fait ainsi :

else
{
res = mysql_store_result(sock);
row = mysql_fetch_row(res);
int nblignes = mysql_num_rows(res);
TRACE1("NB Lignes : %d\n", nblignes);
montableau = mysql_fetch_array(res);

while (row = mysql_fetch_array(res))
{
printf("ID : %s Nom : %s", row[0], row[1]);
}

Et j'ai une erreur au moment de l'assignement dans mon tableau et dans ma boucle while ...

Je suis perdue là ...

Je vais repartir sur mon ancien else et essayer de le modifier, si quelqu'un à une idée je suis preneuse ...
mardi 30 mars 2010 à 09:06:30 | Re : Récupérer résultat d'une requête SQL dans un tableau?

Juju1988

Voilà ce que j'ai fait, après reflexion, est ce correct ? :

int comparaisonFTs(numFT, res)
int numFT;
{
MYSQL *mysql,*sock;
MYSQL_RES *res;
MYSQL_ROW row;

int str[100];
int j,i;
int nblignes = mysql_num_rows(res);

for (j = 0; j < nblignes; j++)
{
row = mysql_fetch_row(res);
sprintf(str,"%s", row[j]);
}

for (i = 0; j < nblignes; i++)
{
if (numFT = str[i])
{
return(1);
}
else
{
return(0);
}
}
}

Cependant cela me dit re redeclared as different kind of symbol, comment faire? Puis previous definition of res was here et ausis passing argument 1 of sprintf from incompatible pointer type ... Sachant que dans ma fonction précédente j'ai récupérer res de cette manière :

res = mysql_store_result(sock);

Puis je le passe en paramètre dans l'appel de ma fonction ici présente.

Quelle est mon erreur? Ma boucle for est-elle correcte?

Merci d'avance


Cette discussion est classée dans : récupérer, mysql, tableau, query, row


Répondre à ce message

Sujets en rapport avec ce message

pb reservation memoire C [ par dam1234 ] Salut, g un probleme de reservation d'espace memoire ds mon prog utilisant l api mysql. Enfin je pense que c un pb de reservation car qd j'execute un [Debutant] Pb de connexion a MYSQL depuis MFC [ par remy_42 ] Tout d'abors bonjours à tous.Je cherche un peu d'aide concernant un probleme sur lequel je suis resté bloqué depuis un momment.Je cherche à développé MySQL et QT : QSQL [ par goodvampire ] bonjour,j'ai besoin de manipuler des bases de données via mysql sous qt,j'ai trouver le composant QSqlDatabase et je me suis dis que ca allait aller t connexion distante base de données MySql en c / linux [ par Susherone ] Programme qui se connecte à partir d'un poste distant sous linux à un serveur mysql tournant sous windows. Testé et fonctionne très bien !compilation Impossible de récupérer la taille d'un tableau dynamique, mais le free il la trouve comment ? [ par Nosferatu181187 ] Bonjour tout le monde, je me suis posé la question récemment, que l'on soit en c ou en c++ et qu'on utilise un new ou un malloc pour faire une allocat se connecter a une bd mysql a disatnce [ par hyunkel95 ] slt a tous,voila g un gro pb g creer une base de données mysql sous easyphp é jaimeré pouvoir my connecter a partir de visual c++.Quand je le fé en bo pbm d'affichage aprés une requete SELECT [ par goueg83460 ] bonjour je kance une requete SELECT... et lorque je veut récuperer le contenu des champs il y a un problème. Je n'arrive pas a trouver umoyen de les f requete mysql en C [ par hotlips ] Bonjour,Petit problème avec une fonction qui effectue une requète mysql. La connection et la requète s'executent sans probleme, mais je voudrais pouvo HEXADECIMALE [ par nicompx ] Bonjour,Pouvez-vous me dire comment placer le résultat d'une requête MySQL (API C) dans un emplacement mémoire et l'afficher?En sachant que le résulta VC++6 pb avec mysql_query insert [ par ebalexandr ] lu qq peu m aide j utilise VC++6 avec mysql et je veu inseré une valeur(int VAL) dans ma BdD je fait comme ca:int VAL = 69;char query[]={"INS


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales