Avatar billede meyer Nybegynder
08. april 1999 - 00:00 Der er 41 kommentarer og
1 løsning

loop i kolonner???

Hej der.

Jeg har stirret mig totalt blind på denne her:

Jeg har en tabel med 2 cols og 3 rows og skal ha' indsat noget i hver cols fra en db, men hvor skal jeg loope henne så den ikke bare kører dernedad i første kolonne??

Altså hver kolonne er en annonce i 3 rækker og den skal først indsætte i den første kolonne og derefter læse en ny record ind i kolonne 2.

håber I kan hjælpe :-)
Dan

Avatar billede painelf Nybegynder
08. april 1999 - 16:24 #1
Skal dataene hentes fra samme object? Altså, du henter dine informationer ud af databasen med

object("venstrekolonne")
object("højrekolonne")

Eller henter du informationerne seperat, fra hver sin database?
Avatar billede painelf Nybegynder
08. april 1999 - 16:26 #2
I det første tilfælde skal du gøre noget i stil med

<tr>
    <td>
        response.write(object("venstrekolonne"))
    </td>
    <td>
        response.write(object("højrekolonne"))
    </td>
</tr>

... videre med løkken
Avatar billede meyer Nybegynder
08. april 1999 - 16:26 #3
Fra samme db, ser sådan her ud i en kolonne:

<%

  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DBQ=c:\inetpub\wwwroot\falsternet\sider\sd2\dk.mdb;DefaultDir=c:\inetpub\wwwroot\falsternet\sider\sd2\;Driver={Microsoft Access Driver (*.mdb)};"
  SQL = "select * from tilbud"
  Set RS = Conn.Execute(SQL)
Do While Not RS.EOF %>
            <center><table border="0" cellpadding="2" cellspacing="4" width="300">
                <tr>
                    <td width="400" bgcolor="#f30c00" align="center"><font face="verdana" size="3" color="#FFFFFF"><b><%=RS("overskrift")%></b></td>            </tr>

                <tr>
                    <td width="400"><font face="verdana" size="2"><%Response.Write(Replace((rs("beskrivelse")),vbcrlf,"<br>"))%></td>
                   
                </tr>
        <tr>
                    <td width="400" align="right" bgcolor="#f3f3f3"><font face="verdana" size="3" color="#f30c00"><b>Pris kr. <%=RS("pris")%></b></td>
                   
                </tr>
            </table><br>
<%
  RS.MoveNext
  %>
<%
Loop

  RS.Close
  Conn.Close
%>

Dan
Avatar billede painelf Nybegynder
08. april 1999 - 16:28 #4
Hmm ... det så umiddelbart godt nok ud. Har du en URL så vi kan se hvordan det ser ud?
Avatar billede meyer Nybegynder
08. april 1999 - 16:30 #5
Nej, den ligger ikke on-line endnu, men den du ser virker fint MEN er kun i en kolonne og jeg kan fan'me ikke se hvordan jeg laver den i 2!!!!

Dan
Avatar billede painelf Nybegynder
08. april 1999 - 16:32 #6
Hmmm ... kan du ikke ligge den online? Jeg kan ikke forstår hvad du mener ...
Avatar billede jgc Nybegynder
08. april 1999 - 16:32 #7
Kan du bruge noget fra denne sub?
(kaldes med <% call query2table("SQL-streng")

<%
sub query2table(inputquery)
  set conntemp=server.createobject("adodb.connection")
  conntemp.open "DSN=Student;uid=student;pwd=magic"
  set rstemp=conntemp.execute(inputquery)
  howmanyfields=rstemp.fields.count -1%>
  <table border=1><tr>
  <% 'Put Headings On The Table of Field Names
  for i=0 to howmanyfields %>
            <td><b><%=rstemp(i).name%></B></TD>
  <% next %>
  </tr>
  <% ' Now lets grab all the records
  do while not rstemp.eof %>
      <tr>
      <% for i = 0 to howmanyfields
        thisvalue=rstemp(i)
        If isnull(thisvalue) then
            thisvalue="&nbsp;"
        end if%>
            <td valign=top><%=thisvalue%></td>
      <% next %>
      </tr>
      <%rstemp.movenext
  loop%>
  </table>
  <%
  rstemp.close
  set rstemp=nothing
  conntemp.close
  set conntemp=nothing
end sub%>

Den laver en tabel med headings til feltnavnene, og alle poster placeret i skemaet.
Avatar billede painelf Nybegynder
08. april 1999 - 16:32 #8
Og jeg kan heller ikke stave :)
Avatar billede jgc Nybegynder
08. april 1999 - 16:34 #9
Ups - jeg glemte en slut "%>" øverst ved call-sætningen.
Avatar billede meyer Nybegynder
08. april 1999 - 16:35 #10
Hej painelf.

Den du ser laver KUN en tabel med en kolonne, men jeg vil godt ha' den til at lave 2 ved siden af hinanden, forstår du?

Dan
Avatar billede painelf Nybegynder
08. april 1999 - 16:37 #11
Nejnejnej :))

Undskyld .. jeg så mig også blind på det.

fjern de fire midterste <tr> tags, så din struktur bliver

<tr>
    <td>
        tekst 1
    </td>
    <td>
        tekst 2
    </td>
    <td>
        tekst 3
    </td>
</tr>
Avatar billede meyer Nybegynder
08. april 1999 - 16:38 #12
Hej jgc.

Jeg har 3 felter i min record:
Overskrift, beskrivelse og pris. De skulle gerne komme i den rækkefølge i 3 rows, og derefter gå videre i den næste kolonne.

Dan
Avatar billede jgc Nybegynder
08. april 1999 - 16:40 #13
Hold kæft (undskyld sproget) - tillykke til painelf. Her leder man efter en ASP-fejl, og så er problemet i HTML-kodningen. Det ligner en løsning...
Avatar billede meyer Nybegynder
08. april 1999 - 16:40 #14
hej painelf

Nope, så laver den 3 kolonner i stedet for 3 rækker.

Dan :-)
Avatar billede meyer Nybegynder
08. april 1999 - 16:42 #15
Prøv at se en avis for Jer med 2 spalter, det er det det handler om, ok?

Dan
Avatar billede painelf Nybegynder
08. april 1999 - 16:46 #16
Hnmmm? :)

Skal du have to forskellige tilbud ved siden af hinanden, eller?
Avatar billede meyer Nybegynder
08. april 1999 - 16:46 #17
Thats it!!!
Dan:-))
Avatar billede painelf Nybegynder
08. april 1999 - 16:47 #18
Fik du det til at virke?
Avatar billede jgc Nybegynder
08. april 1999 - 16:48 #19
For at få det helt på det rene: Er det du skal bruge følgende:

Overskrift1 &#124;&#124; Overskrift2
Beskrivelse1 &#124;&#124; Beskrivelse2
Pris1 &#124;&#124; Pris2

-skal kun være 2 records i tabellen?
-er ovenstående korrekt opfattet?
Avatar billede meyer Nybegynder
08. april 1999 - 16:49 #20
nej, nej men du fangede problemet, altså 2 tilbud ved siden af hinanden.

Dan :-)
Avatar billede meyer Nybegynder
08. april 1999 - 16:50 #21
Hej jgc.

Jepper :-)

Dan
Avatar billede jgc Nybegynder
08. april 1999 - 16:51 #22
Kan du så ikke bare køre en SQL-streng 2 gange, én for første kolonne og én for anden. Det er selvfølgelig ikke den 'pæneste' ordning, men mon ikke det kan virke?
Avatar billede meyer Nybegynder
08. april 1999 - 16:52 #23
...men loope videre dernedad...

Dan
Avatar billede meyer Nybegynder
08. april 1999 - 16:54 #24
hej jgc

Tror det ikke, den skal jo tage næste record og så tilbage til kolonne 1 og loope videre!

Dan :-)
Avatar billede jgc Nybegynder
08. april 1999 - 16:55 #25
Jeg tror du skal gemme den første post i en eller flere variable, således at du får adgang til begge poster samtidigt. Du kan jo ikke ændre på at et tabelfeltet A2 skal skrives før B1 i HTML-koden. Men hvis du gemmer værdierne fra første post i variable, kan du skrive HTML i den rigtige rækkefølge.
Avatar billede jgc Nybegynder
08. april 1999 - 16:58 #26
Prøv noget i retning af:

ov1=RS("overskrift")
pris1=RS("pris")
beskriv1=RS("Beskrivelse")
RS.movenext

først herefter starter <table>-kodningen
Avatar billede meyer Nybegynder
08. april 1999 - 16:58 #27
Lyder kompliceret!!

Dan
Avatar billede jgc Nybegynder
08. april 1999 - 17:05 #28
Ok - prøv følgende:

<%

  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DBQ=c:\inetpub\wwwroot\falsternet\sider\sd2\dk.mdb;DefaultDir=c:\inetpub\wwwroot\falsternet\sider\sd2\;Driver={Microsoft Access Driver (*.mdb)};"
  SQL = "select * from tilbud"
  Set RS = Conn.Execute(SQL)
  ov1=RS("overskrift")
pris1=RS("pris")
beskriv1=RS("Beskrivelse")
RS.movenext
%>
            <center><table border="0" cellpadding="2" cellspacing="4" width="300">
                <tr>
                    <td width="400" bgcolor="#f30c00" align="center">
                    <font face="verdana" size="3" color="#FFFFFF"><b><% response.write(ov1)%></b></td>
                    <td width="400" bgcolor="#f30c00" align="center">
                    <font face="verdana" size="3" color="#FFFFFF"><b><%=RS("overskrift")%></b></td>          </tr>

                <tr>
                    <td width="400"><font face="verdana" size="2"><%Response.Write(Replace(beskriv1),vbcrlf,"<br>"))%></td>
                    <td width="400"><font face="verdana" size="2"><%Response.Write(Replace((rs("beskrivelse")),vbcrlf,"<br>"))%></td>                   
                </tr>
        <tr>
                    <td width="400" align="right" bgcolor="#f3f3f3"><font face="verdana" size="3" color="#f30c00"><b>Pris kr. <% response.write(pris1) %></b></td>
        <td width="400" align="right" bgcolor="#f3f3f3"><font face="verdana" size="3" color="#f30c00"><b>Pris kr. <%=RS("pris")%></b></td>
                </tr>
            </table><br>
<%
  RS.Close
  Conn.Close
%>
Avatar billede jgc Nybegynder
08. april 1999 - 17:13 #29
Forklaring: Jeg har bare sat en <td></td> tag ind før hver af de tre eksisterende. I disse tre felter placerer jeg så værdierne fra post1 (der gemmes i starten).
Så kan jeg skrive fortløbende HTML (uden loops) med adgang til værdierne fra både post1 og post2.

Avatar billede meyer Nybegynder
08. april 1999 - 17:20 #30
ser godt ud men hvad når jeg har flere end 2 tilbud??

Hvis det hele virker skal du nok få pointene!!!

DAn :-)
Avatar billede meyer Nybegynder
08. april 1999 - 17:21 #31
hov der fik du dem allerede!!
Avatar billede jgc Nybegynder
08. april 1999 - 17:22 #32
Tja, bad luck ;/

Nej, lad mig bare prøve at gøre mig fortjent til gevinsten. Hvis du har flere tilbud, hvordan vil du så have dem placeret?
Avatar billede meyer Nybegynder
08. april 1999 - 17:24 #33
det kører godt, bare jeg ikke kun har 3, så får jeg en fejlmelding.

Dan :-)
Avatar billede meyer Nybegynder
08. april 1999 - 17:25 #34
på samme måde, altså 2 nye nedenunder!

DAn
Avatar billede jgc Nybegynder
08. april 1999 - 17:25 #35
Du kan evt. chekce for rs.eof for at undgå fejlmeddelelser.
Avatar billede jgc Nybegynder
08. april 1999 - 17:27 #36
Jeg skal gerne prøve at gruble over noget (man må kunne lave et loop uden om den eksisterende kode), men det bliver nok først senere, evt. i morgen (/jeg skal også lave lidt af det arbejde jeg får penge for...)
Avatar billede meyer Nybegynder
08. april 1999 - 17:27 #37
hvordan gør jeg det, når de nu kører parvis??

Avatar billede meyer Nybegynder
08. april 1999 - 17:28 #38
ok, men foreløbig mange tak for hjælpen!!

Hygge :-)
Dan
Avatar billede painelf Nybegynder
08. april 1999 - 17:38 #39
Der er jo heller ikke nogen der forhindrer dig i at have flere datakilder åbne på en gang ... så kan du droppe de der variable:

Object1=conn.execute("SELECT * FROM Tilbud WHERE ID=1")
Object2=conn.execute("SELECT * FROM Tilbud WHERE ID=2")
Object3=conn.execute("SELECT * FROM Tilbud WHERE ID=3")

do while not Object3.eof
    <tr>
        <td>
            <%=object1("Overskrift")%>
        </td>
        <td>
            <%=object2("Overskrift")%>
        </td>
        <td>
            <%=object3("Overskrift")%>
        </td>
    </tr>
    <tr>
        <td>
            <%=object1("Beskrivelse")%>
        </td>
        <td>
            <%=object2("Beskrivelse")%>
        </td>
        <td>
            <%=object3("Beskrivelse")%>
        </td>
    </tr>
    <tr>
        <td>
            <%=object1("Whatever")%>
        </td>
        <td>
            <%=object2("Whatever")%>
        </td>
        <td>
            <%=object3("Whatever")%>
        </td>
    </tr>

    Object1.movenext
    Object2.movenext
    Object3.movenext
loop
Avatar billede painelf Nybegynder
08. april 1999 - 17:39 #40
Ovenstående ville vise tre ved siden af hinanden ... så du kan ikke loope umiddelbart.

Det kan du dog godt lave så du kan ... sig til hvis jeg skal forklare hvordan.
Avatar billede meyer Nybegynder
08. april 1999 - 17:48 #41
hej painelf.

får denne meddelelse:
Der opstod en Microsoft VBScript-kørselsfejl fejl '800a01b6'

Objektet understøtter ikke denne egenskab eller metode: 'Object3.eof'

/falsternet/sider/sd2/sider/hoved.asp, linje 33

Dan
Avatar billede painelf Nybegynder
08. april 1999 - 19:12 #42
Hmmm .. der skulle nok ha' stået set foran alle Object1=conn[osv] alá

Set Object1=conn.exe [...]

Ligeledes for de andre objectvariabler ..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester