A voir également:
- C récupérer requête dans un tableau
- Tableau croisé dynamique - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Recuperer video youtube - Guide
2 réponses
Bonjour,
Il faut que tu fasses autant de mysql_fetch_row qu'il y a d'enregistrement résultat à ta requête ...
En gros, ta boucle doit faire ça :
mysql_fetch_row --> recherche le premier enreg
---> traitement du premier enreg
mysql_fetch_row --> recherche le 2ème enreg
---> traitement du deuxième enreg
mysql_fetch_row --> recherche le 3ème enreg
...etc... jusqu'a être arrivé à ton nombre d'enregs
Cordialement,
M.
Il faut que tu fasses autant de mysql_fetch_row qu'il y a d'enregistrement résultat à ta requête ...
En gros, ta boucle doit faire ça :
mysql_fetch_row --> recherche le premier enreg
---> traitement du premier enreg
mysql_fetch_row --> recherche le 2ème enreg
---> traitement du deuxième enreg
mysql_fetch_row --> recherche le 3ème enreg
...etc... jusqu'a être arrivé à ton nombre d'enregs
Cordialement,
M.
Bonjour,
- Oui ton problème est bien dans le traitement du else
- Oui ce que tu souhaites faire est possible
C'est tout simple :
Comme je te l'ai dit plus haut, il faut faire un fetch pour chaque enregistrement résultat de ta requête.
Dans ton code, tu fais le fetch du premier résultat, mais c'est tout.
Il suffit de suivre l'algorithme que je t'ai indiqué ci-dessus.
A première vue, tu as juste à déplacer deux lignes de ton code pour qu'il fonctionne... (je te laisse chercher, comprendre, puis corriger)
Cordialement,
M.
- Oui ton problème est bien dans le traitement du else
- Oui ce que tu souhaites faire est possible
C'est tout simple :
Comme je te l'ai dit plus haut, il faut faire un fetch pour chaque enregistrement résultat de ta requête.
Dans ton code, tu fais le fetch du premier résultat, mais c'est tout.
Il suffit de suivre l'algorithme que je t'ai indiqué ci-dessus.
A première vue, tu as juste à déplacer deux lignes de ton code pour qu'il fonctionne... (je te laisse chercher, comprendre, puis corriger)
Cordialement,
M.
Je suis désolée mais je bloque, je ne vois pas comment faire, j'ai essayé de nombreuses fois mais je n'arrive pas à comprendre la logique ...
Et surtout comment tout récupérer dans mon tableau ... en attendant une réponse je vais essayerde trouver ces deux lignes à déplacer :)
merci de votre aide en tout cas
Et surtout comment tout récupérer dans mon tableau ... en attendant une réponse je vais essayerde trouver ces deux lignes à déplacer :)
merci de votre aide en tout cas
J'ai essayé quelque chose dans le genre en comprenant que mysql_fetch_row récupère la ligne suivante :
else
{
res = mysql_store_result(sock);
int nblignes = mysql_num_rows(res);
for(j = 0; j < nblignes; j++)
{
row = mysql_fetch_row(res);
TRACE1("NB Lignes : %d\n", nblignes);
sprintf(str,"%s", row[j]);
TRACE1("STR : %s\n",str);
}
}
Mais cela ne fonctionne pas. Je ne comprend pas. Désolée de ma lenteur d'esprit je suis malade et j'ai un peu de mal je dois bien l'avouer ... :-/
else
{
res = mysql_store_result(sock);
int nblignes = mysql_num_rows(res);
for(j = 0; j < nblignes; j++)
{
row = mysql_fetch_row(res);
TRACE1("NB Lignes : %d\n", nblignes);
sprintf(str,"%s", row[j]);
TRACE1("STR : %s\n",str);
}
}
Mais cela ne fonctionne pas. Je ne comprend pas. Désolée de ma lenteur d'esprit je suis malade et j'ai un peu de mal je dois bien l'avouer ... :-/
Voilà ce que j'ai fait, 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
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
23 mars 2010 à 16:28
Dans nblignes j'ai le nombre d'enregistrement ... donc je vois pas trop ce que vous voulez dire ... désolée je débute ... Comment dois je construire en gros ma boucle avec mysql_fetch_row pour récupérer tous les enregistrements et les mettre dans un tableau (est ce que c'est possible déjà?).
Une fois ce tableau complet je le parcourerai pour tester chaque valeur avec celle que j'ai en paramètre.