Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/09/2008, 17h00   #1
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
Par défaut Insérer les valeurs d'un tableau dans une table

Bonjour,

J'ai un tableau où la taille change selon ce qu'a choisi l'utilisateur. Mais il faut que les valeurs que l'utilisateur a choisi soit inséré dans une DB.

Comment faire?Je me doute qu'il faut boucler mais je ne vois pas comment du tout.

Merci d'avance.
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 17h23   #2
Nouveau Membre du Club
 
Développeur informatique
Inscription : juillet 2007
Messages : 77
Détails du profil
Informations personnelles :
Âge : 31

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2007
Messages : 77
Points : 35
Points : 35
A ce que j'ai compris l'utilisateur va rentrer une valuer.
alors tu calcul la longeur de ta valeur et tu redimension à la volée ton tableau.
tu fais un redim
dedein84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 17h25   #3
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
non c'est pas ça. Je me suis mal exprimé.

Enfait toutes les valeurs du tableau doivent être insérées dans une table.
Mais je ne sais pas comment insérer les valeurs d'un tableu dynamique?
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 21h43   #4
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 862
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 862
Points : 5 982
Points : 5 982
Salut,

Il faut utiliser une boucle FOR NEXT avec deux increments, un pour les lignes un pour les colonnes. Au fur et à mesure tu construis tes requetes SQL et tu les executes.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 21h51   #5
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
tu pourrais me donner un exemple stp parce que c'est vraiment trop abstrait dans ma tête.
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 23h39   #6
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 862
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 862
Points : 5 982
Points : 5 982
A copier coller dans une page ASP et tester
Code :
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
<%@ language="VBSCRIPT"%>
<%Option Explicit %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Tableau</title>
</head>
<body>
<%
Dim arr(10,20), i, j
Response.Write("<table style=""border: solid 1px black; border-collapse: collapse"">")
for i = 0 to ubound(arr, 1)
    Response.Write("<tr>")
    for j = 0 to ubound(arr, 2)
        Response.Write("<td style=""border: solid 1px black; text-align: center;"">" & i & "," & j & "</td>")
    next
    Response.Write("</tr>")
next
Response.Write("<tr><td colspan=" & ubound(arr, 2) + 1 & " style=""border: solid 1px black"">&nbsp;</td></tr>")
for i = 0 to ubound(arr, 1)
    Response.Write("<tr>")
    for j = 0 to ubound(arr, 2)
        Response.Write("<td style=""border: solid 1px black; text-align: center;"">" & j & "," & i & "</td>")
    next
    Response.Write("</tr>")
next
Response.Write("</table>")
 %>
</body>
</html>
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 10h24   #7
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
merci je vais tester ça avec mes données. Je mettrai "résolu" une fois que je suis sur que ça fonctionne bien.
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 12h08   #8
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
j'ai quelques petits problèmes que je ne comprend pas.

voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
 
for i=0 to ubound(hor_lundi)
  requete_id_hor="SELECT id_horaire FROM tb_horaire WHERE horaire='" & hor_lundi(i) & "'"
  Set horRS=CreateObject("ADODB.RecordSet")
  horRS.Open requete_id_hor, connexion	
  Response.write horRS("id_horaire")
next 
 
horRS.Close
set horRS=nothing
peut importe le nombre de valeurs du tableau hor_lundi, il ne m'en retournera qu'une. J'ai donc retourné une erreur avec err.description et j'ai ceci

Citation:
BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel.
je pense que c'est un problème au niveau de mon recordset pusique quand j'affiche les valeurs avec juste un response.write ça fonctionne.
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 12h49   #9
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Bonjour,

Deux choses :

La fonction ubound() retourne le nombre d'éléments d'un tableau. Donc comme le premier indice commence à zéro :
Code :
1
2
for i=0 to ubound(hor_lundi) - 1
Tu ouvres ton recordset dans ta boucle sans le fermer :
Code :
1
2
3
4
5
6
7
8
9
 
Set horRS=CreateObject("ADODB.RecordSet")
for i=0 to ubound(hor_lundi)
  requete_id_hor="SELECT id_horaire FROM tb_horaire WHERE horaire='" & hor_lundi(i) & "'"
  horRS.Open requete_id_hor, connexion	
  Response.write horRS("id_horaire")
  horRS.Close
next 
set horRS=nothing
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 13h44   #10
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
quand je fais ubound()-1 il me manque un élément contrairement ubound() (si je ne fais rien d'autre que d'afficher les éléments du tableau.

Code :
1
2
3
4
5
6
7
8
9
 
Set horRS=CreateObject("ADODB.RecordSet")
for i=0 to ubound(hor_lundi) - 1
  requete_id_hor="SELECT id_horaire FROM tb_horaire WHERE horaire='" & hor_lundi(i) & "'"
  horRS.Open requete_id_hor, connexion	
  Response.write horRS("id_horaire")
  horRS.Close
next 
set horRS=nothing
la valeur qui s'affichait tout à l'heure(la dernière) ne s'affiche plus.
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 14h11   #11
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Re,

Comment est alimenté ton tableau ?
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 14h21   #12
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
Re,

Les données sont rentrées dans un formulaire, par une liste déroulante
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<span></br>
<input type="hidden" name="lundi" value="lundi">
<select name="ctrl_lundi" multiple="multiple" size="5">
<% requete_time="select horaire from tb_horaire order by horaire"		
Set timeRS = CreateObject("ADODB.RecordSet")	
timeRS.Open requete_time, connexion	
do while not timeRS.EOF %>						
  <option name="" value="<%=timeRS("horaire")%>">
  <%=timeRS("horaire")%>
  </option> 
  <% timeRS.MoveNext
loop						
timeRS.Close
Set timeRS=nothing %>	
</select></span>
Ces données sont récupérées dans une autre page pour faire des tests dessus afin de vérifier que les champs remplis sont corrects et pour permettre à l'utilisateur de confirmer ses choix.

Code :
1
2
3
 
lundi_enregistrement = Trim("" & Request.Form("ctrl_lundi"))
session("tb_lundi") = split(lundi_enregistrement, " ")
Dans une dernière page, les données sont insérées à une table(pour ça j'utilise des variables de sessions).

Code :
1
2
3
4
 
hor_lundi=session("tb_lundi")
..
(et le code qui est dans mon post au dessus)
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 16h26   #13
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Ok, mais dans cette instruction :
Citation:
for i=0 to ubound(hor_lundi)
Comment est alimenté hor_lundi ?
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 16h29   #14
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
le tableau hor_lundi est alimenté par la variable de session tb_lundi qui elle est une réaffectation d'une liste déroulante


hor_lundi apparait à ce moment là
Code :
1
2
3
4
5
6
7
8
9
10
hor_lundi=session("tb_lundi")
 
Set horRS=CreateObject("ADODB.RecordSet")
for i=0 to ubound(hor_lundi) - 1
  requete_id_hor="SELECT id_horaire FROM tb_horaire WHERE horaire='" & hor_lundi(i) & "'"
  horRS.Open requete_id_hor, connexion	
  Response.write horRS("id_horaire")
  horRS.Close
next 
set horRS=nothing
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 16h57   #15
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Bon, cette partie de code est correcte ?
Code :
1
2
3
4
5
6
7
8
9
 
Set horRS=CreateObject("ADODB.RecordSet")
for i=0 to ubound(hor_lundi) - 1
  requete_id_hor="SELECT id_horaire FROM tb_horaire WHERE horaire='" & hor_lundi(i) & "'"
  horRS.Open requete_id_hor, connexion	
  Response.write horRS("id_horaire")
  horRS.Close
next 
set horRS=nothing
Si c'est OK, tu peux maintenant faire tes insertions :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Set Conn=Server.CreateObject("ADODB.Connection")
' initialisation de la connexion
Conn.Open(connexion)
Set horRS=CreateObject("ADODB.RecordSet")
for i=0 to ubound(hor_lundi) - 1
  requete_id_hor="SELECT id_horaire FROM tb_horaire WHERE horaire='" & hor_lundi(i) & "'"
  horRS.Open requete_id_hor, connexion	
  txtSQL = "insert into LaTable ......."
  Conn.Execute (txtSQL)
  horRS.Close
next 
set horRS=nothing
Conn.close
set Conn = nothing
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 17h00   #16
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
la première partie n'est pas correcte, c'est ça le problème.

Ca affiche toujours la dernière valeur du tableau seulement, pareil si je l'insère.Dans la table je n'aurais que la dernière valeur.

J'ai tjs l'erreur "BOF ou ROF est TRUE.."
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 08h10   #17
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Re,

Que donne ça ?

Code :
1
2
 
Response.Write ubound(hor_lundi)
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 09h18   #18
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
ça donne 0 si je sélectionne 1 élément, 4 si je sélectionne 5 éléments, 9 si j'en sélectionne 10.
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 09h29   #19
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Re,

Tu veux bien essayer ça ?

Code :
1
2
3
4
5
6
7
8
9
 
Set horRS=CreateObject("ADODB.RecordSet")
for i=0 to ubound(hor_lundi) - 1
  requete_id_hor="SELECT id_horaire FROM tb_horaire WHERE horaire='" & hor_lundi(i) & "'"
  horRS.Open requete_id_hor, connexion	
  Response.write horRS("id_horaire") & " - " & hor_lundi(i) & "<br>"
  horRS.Close
next 
set horRS=nothing
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 09h45   #20
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2008
Messages : 115
Points : 35
Points : 35
ça m'affiche uniquement le dernier element sélectionné.

Si je sélectionne 8h, 14h et 18h

j'aurai "id_horaire - 18h" uniquement
Konami15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h25.


 
 
 
 
Partenaires

Hébergement Web