IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Insérer les valeurs d'un tableau dans une table


Sujet :

ASP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    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.

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 81
    Points : 79
    Points
    79
    Par défaut
    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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    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?

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    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+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    tu pourrais me donner un exemple stp parce que c'est vraiment trop abstrait dans ma tête.

  6. #6
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    A copier coller dans une page ASP et tester
    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
    <%@ 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>
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    merci je vais tester ça avec mes données. Je mettrai "résolu" une fois que je suis sur que ça fonctionne bien.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    j'ai quelques petits problèmes que je ne comprend pas.

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

    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.

  9. #9
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Deux choses :

    La fonction ubound() retourne le nombre d'éléments d'un tableau. Donc comme le premier indice commence à zéro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i=0 to ubound(hor_lundi) - 1
    Tu ouvres ton recordset dans ta boucle sans le fermer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  11. #11
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Comment est alimenté ton tableau ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    Re,

    Les données sont rentrées dans un formulaire, par une liste déroulante
    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
     
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    hor_lundi=session("tb_lundi")
    ..
    (et le code qui est dans mon post au dessus)

  13. #13
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Ok, mais dans cette instruction :
    for i=0 to ubound(hor_lundi)
    Comment est alimenté hor_lundi ?

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  15. #15
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bon, cette partie de code est correcte ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    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.."

  17. #17
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Que donne ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.Write ubound(hor_lundi)

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    ç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.

  19. #19
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Tu veux bien essayer ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 66
    Points
    66
    Par défaut
    ça m'affiche uniquement le dernier element sélectionné.

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

    j'aurai "id_horaire - 18h" uniquement

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Inscrire les valeurs d'un tableau dans une cellule
    Par gaby12 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 27/02/2015, 20h35
  2. Insérer les valeurs de mon Form dans ma Table
    Par blancinette dans le forum VB.NET
    Réponses: 4
    Dernier message: 15/04/2014, 09h11
  3. [MySQL] comment insérer les informations d'un formulaire dans une table
    Par eljed dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/05/2011, 12h01
  4. Réponses: 1
    Dernier message: 04/05/2010, 11h47
  5. Copier les valeurs d'un formulaire dans une table
    Par Cyphen dans le forum Access
    Réponses: 4
    Dernier message: 19/06/2006, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo