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 :

requete BD et affichage de TOUS les résultats


Sujet :

ASP

  1. #1
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut requete BD et affichage de TOUS les résultats
    bonjour,

    je récupère des données dans une base (oracle) via ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <%'se connecte à otobject pour avoir les infos complémentaires
    otSql="SELECT * FROM otObject WHERE oidobject=" & oidobject
    set oRec = oPam.ogbAdoData.Execute(otSql)
    %>
    -----
    <%=oRec("champ1")%>
    le problème (mais c'en n'est pas un) est que cela ne m'affiche que le premier champs répondants à mes critères.

    j'aimerais pouvoir afficher TS les champs correspondant à cette requête.

    dois-je utiliser une boucle until, for etc, et comment dois je faire ???

    d'avance, merci pr vos conseils avancés !

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    une boucle tant que le le recordset n'est pas arrivé à la fin me parait être une bonne chose.
    Y-a rien là dessus dans la FAQ ?

  3. #3
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut
    dc, si je comprend bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <%'se connecte à otobject pour avoir les infos complémentaires 
    otSql="SELECT * FROM otObject WHERE oidobject=" & oidobject 
    set oRec = oPam.ogbAdoData.Execute(otSql) 
     
     
    Set RS = Server.CreateObject("ADODB.RecordSet")
    RS.Open oRec do while not RS.eof %>
    cela serait il bon ?
    parce que ce que je ne comprend pas, c comme moi je n'ai pas accès aux valeurs cnx (qui st déclaré sur un fichier que je n'ai pas) je ne peux donc pas utiliser le code suivan,t:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set RS = Server.CreateObject("ADODB.RecordSet")
    RS.Open sql, cnx,adOpenKeyset
    je suppose donc qu'en mettant va variable oRec, cela donne la bonne chose....

    mais est-ce que je suppose bien ???....

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    Je ne connais pas cette syntaxe :
    set oRec = oPam.ogbAdoData.Execute(otSql)
    on peut supposer que cela te renvoie un recordset donc un tableau contenant les champs correspondant à ta requete.
    donc je ferais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while Not oRec.EOF
          oRec("MonChamp1")
          oRec("MonChamp2")
          ...
          oRec.MoveNext
    Wend

  5. #5
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Points : 287
    Points
    287
    Par défaut
    salut

    sans transition...

    kel est la difference entre ces 2 boucles :

    et

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    et regardant bien je dirais que le mots sont pas tout a fait les même et que tu a un mo en plus
    A part cela je pense qu'elles sont équivalentes.

  7. #7
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Points : 287
    Points
    287
    Par défaut
    oki

  8. #8
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut
    ok en effet cela fctionne nickel

    g même fait cela:

    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
    'récup datas mais surtout oid dans la table otfile
    otSql="SELECT * FROM otFile WHERE oiduser=" & oConnect.oidUser
    set oRec = oPam.ogbAdoData.Execute(otSql)
    oidobject= oRec("OIDOBJECT")
    description = oRec("OMDESCRIPTION")
    while Not oRec.EOF
     
     
    'se connecte à otobject pour avoir les infos complémentaires
    otSql="SELECT * FROM otObject WHERE oidobject=" & oRec("OIDOBJECT")
    set oRec2 = oPam.ogbAdoData.Execute(otSql)
    oRec.MoveNext
     
     
            while Not oRec2.EOF 
            response.write oRec2("otmodel") & "<br>" 
    oRec2.MoveNext
    Wend
    Wend %>
    qui me permet de récupérer la liste des oid correspondant à ma requête et de refaire une reqêtes avec ce soid, et de me retourner ces valeurs bien sur !

    une dernière chose...
    j'ai voulu rajouter une facon de vérifier qu'il y a bien des datas correspondants à mes critères. pour cela j'utilise le code suivant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (oRec.EOF and oRec.BOF) Then
    response.write "no ok"
    else
    'traitement demande
    end if
    ce qui me fait donc:

    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
    'récup datas mais surtout oid dans la table otfile
    otSql="SELECT * FROM otFile WHERE oiduser=" & oConnect.oidUser
    set oRec = oPam.ogbAdoData.Execute(otSql)
    oidobject= oRec("OIDOBJECT")
    description = oRec("OMDESCRIPTION")
    if (oRec.EOF and oRec.BOF) Then
    Response.write "Vous n'avez pas de dossiers en cours"
    else
    'sinon, traitement de la demande
    while Not oRec.EOF
     
     
    'se connecte à otobject pour avoir les infos complémentaires
    otSql="SELECT * FROM otObject WHERE oidobject=" & oRec("OIDOBJECT")
    set oRec2 = oPam.ogbAdoData.Execute(otSql)
    oRec.MoveNext
     
     
            while Not oRec2.EOF 
            response.write oRec2("otmodel") & "<br>" 
    oRec2.MoveNext
    Wend
    Wend 
    End If
    %>
    mais lorsque que l'utilisateur n'a pas de dossier, ça rame énormément !
    dans le cas contraire, c nickel

  9. #9
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut
    petite correction. ce n'est pas la vérif orec.eof and orec.bof qui fait ramer, mais bien le code au dessus quand la première requête est vide en fait....

  10. #10
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    Au lieu de ça :
    set oRec = oPam.ogbAdoData.Execute(otSql)
    oidobject= oRec("OIDOBJECT")
    description = oRec("OMDESCRIPTION")
    if (oRec.EOF and oRec.BOF) Then
    je ferais plutot ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    set oRec = oPam.ogbAdoData.Execute(otSql)
    if (oRec.EOF and oRec.BOF) Then 
    ...
    else
    oidobject= oRec("OIDOBJECT")
    description = oRec("OMDESCRIPTION")
    car si tu n'as pas d'enregistrement correspondant à ta requete il va faire une erreur lors des affectations des variables.

  11. #11
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut
    en effet, ct ça ! g été blaireau

    merci

  12. #12
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    s'il te plait, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Servlet + recherche web+ affichage de tous les résultats
    Par sab113 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/02/2014, 09h55
  2. Réponses: 6
    Dernier message: 01/08/2012, 12h47
  3. Réponses: 3
    Dernier message: 03/07/2010, 17h31
  4. [MySQL] Traitement de tous les résultats d'une requete
    Par MissElo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/04/2010, 17h55
  5. [MySQL] 1 seul tableau pour tous les résultats de requetes
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/05/2006, 20h12

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