Je voudrais savoir s'il est possaible en asp de remplir un tableau (array) avec dezs données d'une table de ma base de données, je m'explique je voudrais que tous mes NOM_USER de ma table USERS figure dans un seul et même array !!
Je voudrais savoir s'il est possaible en asp de remplir un tableau (array) avec dezs données d'une table de ma base de données, je m'explique je voudrais que tous mes NOM_USER de ma table USERS figure dans un seul et même array !!
Il y a plusieurs techniques mais tu peux utiliser la méthode GetRows de l'objet Recordset :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim strSql Dim objCnn Dim objRst Dim arr Set objCnn = Server.CreateObject("ADODB.Connection") objCnn.Open ConnectionString strSql = "SELECT NOM_USER FROM USER" Set objRst = objCnn.Execute(strSql) If Not objRst.Eof Then arr = objRst.GetRows() End If
Je suis tout a fait d'accord que le code que tu m'as donner me permet de savoir combien de cellule se trouvent dans mon array mais je voudrais qu'a chaque utilisateurs present dans la table "USER" mon array soit modifier.
Voici mon code :
Ce code me permet de connaitre le nombre de users de ma table mais en aucun cas je peut rajouter chaque dans mon array ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <% Dim arr Set USER = Conn.Execute("SELECT * FROM UTILISATEURS") If Not USER.Eof Then arr = USER.GetRows() End If num_users = Ubound(arr,2) + 1 For i = 1 to num_users If i = num_users Then Set Utilisateurs = Conn.Execute("SELECT * FROM UTILISATEURS") Utilisateurs.MoveFirst Do While Not Utilisateurs.EOF Response.Write(Utilisateurs("LOGIN")) Response.Write("<br>") Utilisateurs.MoveNext Loop End If Next %>
J'ai dans une table tous les utilisateurs de mon application et j'ai besoin pour la création d'un graphe de mettre tous mes utilisateurs dans un array.
Quand tu fais :
Tous les utilisateurs de ta table sont dans un array.
Code : Sélectionner tout - Visualiser dans une fenêtre à part arr = USER.GetRows()
Et quand tu fais :
Tu peux accéder à tout tes utilisateurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 For i = 1 To Ubound(arr) Response.write arr(0,i) & " " & arr(1,i) .... Next
Je ne vois pas ou est le problème.
Je suis tout a fait d'accord avec toi mais je voudrais en fait faire un graphe en VbScript mais que pour ce graphe j'ai besoin d'un array, voici le code de mon graphe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <%@ language="vbscript" %> <% Set Conn = Session("Conn") Set USER = Conn.Execute("SELECT LOGIN FROM UTILISATEURS") If Not USER.Eof Then arr = USER.GetRows() End If num_users = Ubound(arr,2) + 1 For i = 1 to num_users QUE DOIS METTRE ICI POUR AVOIR QUELQUE CHOSE DE SIMILAIRE A CA : labels = Array("Synapse","Christian","Nicolas","Comptoir","Alix","Richard") Next Set cd = CreateObject("ChartDirector.API") data = Array(12,14,2,5,8,1) Set c = cd.XYChart(800,240) Call c.addTitle("Nombre de demandes par utilisateurs", "timesbi.ttf", 14) Call c.setPlotArea(45, 40, 300, 160) Set layer = c.addBarLayer3(data) Call layer.set3D(Session("Graph3D")) Call layer.setBarShape(cd.CircleShape) Call c.xAxis().setLabels(labels) Call c.yAxis().setTitle("Demande") Call c.xAxis().setTitle("") Response.ContentType = "image/png" Response.BinaryWrite c.makeChart2(cd.PNG) Response.End %>
Peut être que je dis des betises mais la fonction Array() et GetRows() retournent des tableaux du même type.
Si tu poses la question c'est que tu as déjà du tester le code suivant :
Je met le retour de GetRows directement dans Labels.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <%@ language="vbscript" %> <% Set Conn = Session("Conn") Set USER = Conn.Execute("SELECT LOGIN FROM UTILISATEURS") If Not USER.Eof Then labels= USER.GetRows() End If Set cd = CreateObject("ChartDirector.API") data = Array(12,14,2,5,8,1) Set c = cd.XYChart(800,240) Call c.addTitle("Nombre de demandes par utilisateurs", "timesbi.ttf", 14) Call c.setPlotArea(45, 40, 300, 160) Set layer = c.addBarLayer3(data) Call layer.set3D(Session("Graph3D")) Call layer.setBarShape(cd.CircleShape) Call c.xAxis().setLabels(labels) Call c.yAxis().setTitle("Demande") Call c.xAxis().setTitle("") Response.ContentType = "image/png" Response.BinaryWrite c.makeChart2(cd.PNG) Response.End %>
Ca marche ça ?
Sinon on peut compliquer un peu plus en utilisant la commande execute :
Le but du jeu est de construire la chaine Array("Synapse","Christian","Nicolas","Comptoir","Alix","Richard") puis de l'éxécuter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim strCommande strCommande = "Array(" For i = 1 To Ubound(arr) strCommande = strCommande & """" & arr(0,i) & """," Next strCommande = Left(strCommande,Len(strCommande)-1) strCommande = strCommande & ")" Labels = execute(strCommande)
Je suis curieux de savoir si la 2em solution fonctionne.
Tu me tiendras au courant.
J'ai fais une erreur dans mon précédent post.
J'ai confus les methodes Execute et Eval.
Voici un code qui fonctionne (je viens de la tester) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim strCommande strCommande = "Array(" For i = 1 To Ubound(arr) strCommande = strCommande & """" & arr(0,i) & """," Next strCommande = Left(strCommande,Len(strCommande)-1) strCommande = strCommande & ")" Labels = Eval(strCommande)
J'ai une erreur de syntaxe sur la derniere ligne "Labels = execute(strCommande)" sur ce qui est de ton deuxieme test mais en ce qui concerne le permier test c'est sur il ne fonctionne pas, je vais tenter de chercher un peu plus sur mon erreur de syntaxe de ta deuxieme idée.
C'est quoi le composant que tu utilises?
C'est pour moi, pour ta question je peux pas t'aider.
J'utilise OWC.Chart mais je galère à mettre des graphes différents sur un même graphique.![]()
![]()
![]()
Ton code fonctionne tres bien mais il ne me reste plus qu'a mettre mes Nom de users dans mon array et cela sera bon ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager