[Résolu] MySQL et condition sur le résultat retourné par une requête

MySQL et condition sur le résultat retourné par une requête [Résolu] - C - Programmation

Marsh Posté le 09-04-2008 à 23:50:05    

Bonjour,
J'ai un petit soucis avec la fonction ci-sessous :

Code :
  1. int verrifStatusPere(int ID_Job)
  2. {
  3.     MYSQL *conn = db_connect();
  4.     MYSQL_RES *result = NULL;
  5.     MYSQL_ROW row = NULL;
  6.     sprintf(query, "SELECT jp.Status FROM JobPlanif AS jp LEFT JOIN JobDep AS jd ON jd.ID_Dep = jp.ID_Job WHERE ID_Dep = %s", ID_Job);
  7.     char query[255];
  8.     mysql_query(conn, query);
  9.     result = mysql_use_result(conn);
  10.    
  11.     while (row = mysql_fetch_row(result)) {
  12.         if (row[0] != "COMPL" ) {
  13.             logMessage(ID_Job, "Job en cours" );
  14.         } else {
  15.             logMessage(ID_Job, "Job termine" );
  16.         }
  17.     }
  18.    
  19.     mysql_free_result(result);
  20.     mysql_close(conn);
  21.     return 0;
  22. }


La connexion est OK
La requete retourne bien la valeur COMPL pour l'ID_Job donné en paramètre
logMessage ne fait qu'envoyer dans une table MySQL le message donné en second paramètre
et c'est là le problème, ça me retourne toujours "Job en cours" alors que ça devrait
être "Job fini". Quand j'affiche le contenu de row[0] j'ai bien COMPL
Me suis planté quelque part, mais ou ?
(Je me suis mis au C depuis quelques jours, alors si vous voyez de grosses erreurs, toutes critiques sera la bienvenue )
 
Merci
Stéphane


Message édité par shivaia le 11-04-2008 à 23:27:25
Reply

Marsh Posté le 09-04-2008 à 23:50:05   

Reply

Marsh Posté le 10-04-2008 à 10:36:34    

C'est normal. Il faudrait sortir ton "job terminé" du while si je comprends ce que tu veux faire.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 11-04-2008 à 08:51:38    

Je ne pense pas car il est possible d'avoir plusieurs lignes de résultats à ma requête SQL, donc si au premier tour du while row[0] = COMPL j'arrête la boucle de suite (d'aileurs j'ai oublié le exit...) sinon ça continue.
Mais que veux tu dire par "sortir ton "job terminé" du while" ? Mettre tout le bloc if/else hors de la boucle ?
Là je cherche à faire le test sur chaque lignes retournées par la requête.

Reply

Marsh Posté le 11-04-2008 à 23:26:20    

Bon, c'est OK, je viens d'avoir la réponse sur un autre forum, il faut simplement utiliser la fonction strcmp()

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed