Bonjour,

Je viens à vous aujourd'hui car malgrés plusieurs jours de recherche, je suis toujours bloqué au même point.

La situation est a suivante :

Je suis actuellement en stage au sein d'une mutuelle qui utilise différents serveurs, ainsi qu'un AS400.
Je dois réaliser une application intranet qui a pour but de modifier les données présentes dans ce fameux AS.

Mon problème :

Par le biais d'une liste déroulante, l'utilisateur sélectionne un code traitement (CODTRT) ainsi qu'une date au format SSAAMMJJ (DATE).
Une fois le formulaire envoyé, je récupère sur la page suivante les informations en sachant que les informations sont issues de la table YREFERENHD et YJOURS1HD.
Sur cette page, je dois réaliser une boucle (ou autre chose, mais l'idée de la boucle me paraît la plus appropriée) afin de ne choisir dans les deux tables, que les résultats correspondants au CODTRT précédemment choisis, à une DATE strictement supérieur à la date choisis. Jusque la, tout va bien.

Et c'est ici que ça se complique. En effet, un CODTRT possède plusieurs numéro d'ordre (NUORDR). Cela fonctionne sous forme de chaîne.
Par exemple, un CODTRT peut commencer le 20140314 avec un NUORDR à 05 pour finir le 20140316 avec un NUORDR à 99.
Le NUORDR commence toujours à 05, mais on ne sait jamais jusqu'a combien il monte. Le maximum possible étant 99.

Donc le CODTRT possède un NUORDR allant de 05 à 99, une fois le dernier NUORDR atteint, la chaîne recommence, donc de 05 à 99 etc etc

Voilà la véritable source du problème :

Je dois effectuer une requête SQL dans les tables YREFERENHD et YJOURS1HD en prennant soin de n'afficher que les résultats correspondants au CODTRT choisis, strictement supérieurs à la date choisis et ayant un NUORDR de 05 à 99 (Il me faut seulement la première chaine.)


Pour être plus claire et que cela soit plus compréhensible, en algorithmique, cela donnerait quelque chose du genre :

SI CODTRT Choisis = CODTRT dans la BDD ET que DATE choisis > DATE dans la BDD
LIRE LA BDD
SI NUORDR suivant EST INFERIEUR au NUORDR actuel
STOP.
AFFICHE RESULTAT.

Voilà, je ne suis pas réellement un expert du PhP, et encore moins de l'AS.
Mais pour le coup, je ne sais vraiment pas comment faire.
Tout en sachant que pour accèder à l'AS400 via PhP/SQL, il faut impérativement utiliser les pilotes ODBC.

Vous en remerciant d'avance
Cordialement.