ARTICLES | Applications | Best of | FAQ | Forums | VBScript | JScript | Livres | Liens | Contact | ACCUEIL

LA REFERENCE FRANCAISE DES DEVELOPPEURS ACTIVE SERVER PAGEs



Tris multi-niveaux et affichages conditionnels avec ASP
Voici deux exercices en un: nous allons en même temps apprendre à effectuer des tris à différents niveaux sur plusieurs champs, et ensuite à afficher les données de façon conditionnelle. Le tout en seulement 16 lignes de code.

Notre base de travail habituelle est toujours structurée comme suit:

Nom du champ Paramètres
Id Type NuméroAuto
Nom Type Texte, Longueur 50 car.
Prenom Type Texte, Longueur 30 car.
Age Type Numérique (entier long)

Nous voulons afficher la liste des personnes inscrites, selon trois critères distincts: leur nom (tri alphabétique), puis leur prénom (tri alphabétique), puis leur âge (par ordre décroissant). Simplement, pour corser l'exercice, nous n'afficherons pas l'âge des personnes de moins de 18 ans, et à la place nous afficherons l'image suivante:

(cette image porte le nom de fichier pm.jpg)

Nous allons maintenant saisir dans notre table table1 une dizaine d'enregistrements permettant d'effectuer pleinement le test:

MARTIN Paul, 31ans
MARTIN Paul, 16 ans
MARTIN Henri, 44 ans
PICARD Hervé, 57ans
PICARD Jean-Luc, 13 ans
DURAND Ginette, 68 ans
DURAND Ginette, 11 ans
LECLERC Yves, 37 ans
LECLERC Jean, 37 ans
LECLERCQ Jean, 37 ans

Dans notre page ASP, nous commençons par effectuer le tri dans la base.

<%
Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "mabase"
SQLQuery = "SELECT * FROM table1 order by Nom, Prenom, Age DESC"
Set RS = OBJdbConnection.Execute(SQLQuery)
%>

Ensuite nous affichons les données:

<% Do While NOT RS.EOF %>
<% =rs("Nom") %> <% =rs("Prenom") %>
<% If rs("Age") < 18 Then %>
<IMG SRC="pm.jpg">
<% Else %>
<% =rs("Age") %> ans
<% End If %>
<br>
<% rs.movenext
Loop%>

Et comme d'habitude, on n'oublie pas de fermer la connection:

<% rs.close
set rs = nothing %>

Voici le résultat:

DURAND Ginette 68 ans
DURAND Ginette
LECLERC Jean  37 ans
LECLERC Yves  37 ans
LECLERCQ Jean  37 ans
MARTIN Henri  44 ans
MARTIN Paul  31 ans
MARTIN Paul 
PICARD Hervé  57 ans
PICARD Jean-Luc


VERSION IMPRIMABLE PDF


Jean Lançon, MJ Presse


Retour à la liste des articles

Hit-Parade  


FastCounter by bCentral