Avatar billede krel Nybegynder
05. november 2007 - 00:16 Der er 29 kommentarer og
1 løsning

dim med strp??

Hey?
Har læst lidt på HTML.dk om at springe over i tabellen når man laver udtræk fra databasen.. men syns ikke helt jeg kan se hvordan jeg skal få det til at fungere..

Jeg ville gerne kunne udtrække hver anden post i db'en og så derefter lave en rs.move next loop.

#koden
(har makeret de lige poster i db'en med (#1) og tilsvarende de ulige med (#2)

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/fpdb/kristhedj.mdb")
Conn.Open DSN
SQL1 = "select * from [chart] order by [plads] asc"
Set rs = Conn.Execute(SQL1)
Do While Not rs.EOF
%>
<table class='charten' border='0' width='390px' id='charten' cellspacing='0' cellpadding='0'><tr>
<td width='25px' rowspan='2'><img border='0' src='(#1)<%=rs("billede")%>' width='25px' height='25px'></td>
<td width='20px' align='center'><p>(#1)<%=rs("plads")%></td>
<td width='160px'><p style='margin-bottom: 0'>(#1)<%=rs("titel")%></td>
<td width='160px'>(#1)<%=rs("kunstner")%></td>
<td width='25px' rowspan='2'><img border='0' src='(#2)<%=rs("billede")%>' width='25px' height='25px'></td>
</tr>
<tr>
<td width='20px' align='center'>(#2)<%=rs("plads")%></td>
<td width='160px'>(#2)<%=rs("titel")%></td>
<td width='160px'>(#2)<%=rs("kunstner")%></td>
</tr>
</table>
<%
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
%>

På html.dk skriver de dette eksempel:
dim t
t = 1 to 50 Step 5

her ville jeg jo så vælge at skrive en for de lige og en for de ulige poster:
dim a
a = 1 to 19 step 2
dim b
b = 2 to 20 step 2

hvis det kan gøres sådan, hvad skriver jeg så foran (eller hvor det nu skal skrives?) så det bliver til en slags (dima(rs("titel")))

? ? ?
mvh.
Kristian
Avatar billede w13 Novice
05. november 2007 - 01:02 #1
Hmm. Jeg er ikke helt med. Du vil vise hver anden post.. Og så hoppe videre med rs.MoveNext? rs.MoveNext viser jo netop næste post. Sorry, men forstår altså ikke. =)
Avatar billede w13 Novice
05. november 2007 - 01:03 #2
Hvad skulle resultatet være?
Avatar billede krel Nybegynder
05. november 2007 - 13:19 #3
Det er en musik chart og resultat sku ca. være sådanne:
------------------------------------------------------------
| billed01 | 01 | titel01 | kunstner01 | billed02 |
| billed01 | 02 | titel02 | kunstner02 | billed02 |
| billed03 | 03 | titel03 | kunstner03 | billed04 |
| billed03 | 04 | titel04 | kunstner04 | billed04 |

osv osv osv

min tabel er lavet sådan:
|          | td |  td    |    td    |          |
| rowspan 2|---------------------------| rowspan 2|
|          | td |  td    |    td    |          |
Avatar billede krel Nybegynder
05. november 2007 - 13:19 #4
ok. bare glem nederste eks. stregerne holder vist ikke helt...
Avatar billede w13 Novice
05. november 2007 - 13:47 #5
Hmm. Den er lidt speciel, men ville gøre sådan her:
----------------------------------------------
<table class='charten' border='0' width='390px' id='charten' cellspacing='0' cellpadding='0'>
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/fpdb/kristhedj.mdb")
Set rs=Conn.Execute("select * from [chart] order by [plads] asc")
Do While Not rs.EOF
<tr>
<td width='25px' rowspan='2'><img border='0' src='<%=rs("billede")%>' width='25px' height='25px'></td>
<td width='20px' align='center'><p><%=rs("plads")%></td>
<td width='160px'><p style='margin-bottom: 0'><%=rs("titel")%></td>
<td width='160px'><%=rs("kunstner")%></td>
<%rs.MoveNext%>
<td width='25px' rowspan='2'><img border='0' src='<%=rs("billede")%>' width='25px' height='25px'></td>
</tr>
<tr>
<td width='20px' align='center'><%=strPlads%></td>
<td width='160px'><%=rs("titel")%></td>
<td width='160px'><%=rs("kunstner")%></td>
</tr>
<%rs.MoveNext
Loop
rs.Close
Set rs=Nothing%>
</table>
Avatar billede krel Nybegynder
05. november 2007 - 13:54 #6
så siger den fejl 500..
men kan se du har en strPlads

hvor bliver denne defineret?

ville det være nemmere bare at lave hele tabellen og så hente hver enkelt post i alle rækker?
Avatar billede w13 Novice
05. november 2007 - 13:57 #7
Det gør den ikke, det var min første løsning. =) Den skal bare være rs("plads").

Og nej, det ville det ikke. =) Min kode skal kunne gøre det. Kan jeg se et link, når du har rettet strPlads?

Og _er_ der 4 poster i databasen, eller i hvert fald et lige tal?
Avatar billede krel Nybegynder
05. november 2007 - 14:13 #8
lige nu er der 5 men der skal være 20 i alt (en top 20 chart) prøver lige at rette til så
Avatar billede w13 Novice
05. november 2007 - 14:20 #9
Ok. Hvis der er 5, vil den prøve at gå videre til en 6. på et tidspunkt, og så går det galt.

Jeg løste dit problem ved at lægge en ekstra rs.MoveNext ind midt i det hele, så den kan skrifte til post 2. Men der bliver ikke tjekket, om der er en post 2, for hvis der ikke var, ville tabellens struktur jo heller ikke holde. Den er lavet til, at der skal være et lige antal.
Avatar billede krel Nybegynder
05. november 2007 - 14:29 #10
ok. jeg satte bare en %> efter Do While Not... og nu virker det er ved at fylde poster i tabellen
Avatar billede krel Nybegynder
05. november 2007 - 14:36 #11
jamen for søren hvor det virker! et svar?
en lille tillægs - hvis det er i orden??

jeg giver mine billeder navn efter kunstner og titel, så tænkte på om man i stedet for at have en plads i tabellen kunne lave dette ifa en formel

noget ala:
strpic = "(tag de første tre tegn fra)rs("kunstner")(tag de første tre tegn fra)rs("titel")"

- og hvis titlen så starter med et ord på kun 2 tegn og derved det 3. tegn bliver et _ (mellemrum) så skal det 4. tegn bruges i stedet for det 3.
Avatar billede w13 Novice
05. november 2007 - 14:40 #12
Hov ja, det manglede da osse. =)
Avatar billede w13 Novice
05. november 2007 - 14:41 #13
strPic=Left(Replace(rs("kunstner")," ",""),3)&Left(Replace(rs("titel")," ",""),3)
Avatar billede krel Nybegynder
05. november 2007 - 14:47 #14
jamen bliver mellem rum så bare ingenting ogderved bruges tegn 4? smart og tak
Avatar billede w13 Novice
05. november 2007 - 14:48 #15
Jep. Fjerner alle mellemrum i de to tekststrenge.
Avatar billede w13 Novice
05. november 2007 - 14:49 #16
Sørg dog for, at kunstner eller titel aldrig er mindre end 3 tegn, for så vil du få en fejl.
Avatar billede krel Nybegynder
05. november 2007 - 14:54 #17
ok. jamen super tak w13 :)
Avatar billede w13 Novice
05. november 2007 - 15:11 #18
Og tak for point!
Avatar billede krel Nybegynder
05. november 2007 - 18:23 #19
jeg har fået det til at virke (det med strpic) jeg rette/tilføjede følgende:
Set rs=Conn.Execute("select * from [chart]")
strKunstner = Left(replace(rs("kunstner")," ",""),3)
strTitel = Left(replace(rs("titel")," ",""),3)
strBillede = "../grafik/chart/"&strKunstner&""&strTitel&".png"

- i denne kode:
<%Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/fpdb/kristhedj.mdb")
Conn.Open strDSN
Dim i
Dim strSlideimages
Set rs=Conn.Execute("select * from [chart]")
strKunstner = Left(replace(rs("kunstner")," ",""),3)
strTitel = Left(replace(rs("titel")," ",""),3)
strBillede = "../grafik/chart/"&strKunstner&""&strTitel&".png"
Do While Not rs.EOF
If i>0 Then
strSlideimages=strSlideimages&","
End If
strSlideimages=strSlideimages&""""&strBillede&""""
i=i+1
rs.MoveNext
Loop
rs.Close%>
<script language="JavaScript1.1">
var slidespeed=3000
var slideimages=new Array(<%=strSlideimages%>)
var imageholder=new Array()
var ie=document.all
for (i=0;i<slideimages.length;i++){
imageholder[i]=new Image()
imageholder[i].src=slideimages[i]
}
</script>

Men nu tar den jo bare første post hele tiden!? så jeg skal på en eller anden måde loop inden strBillede bliver skrevet færdig hvis man kan sige det sådan?

skal rs.move next bare rykkes eller skal der noget avanceret trylleri til?
Avatar billede w13 Novice
05. november 2007 - 19:21 #20
Når du skriver:
strKunstner = Left(replace(rs("kunstner")," ",""),3)
strTitel = Left(replace(rs("titel")," ",""),3)
strBillede = "../grafik/chart/"&strKunstner&""&strTitel&".png"
Uden for "Do While"-løkken, så vil det jo kun blive gjort en gang. Og derved kun på første post. Så sæt lige disse 3 linjer under "Do While Not rs.EOF".
Avatar billede krel Nybegynder
05. november 2007 - 19:27 #21
hmm syns jeg at jeg prøvede... men jo det virker fint! takker.
Avatar billede w13 Novice
05. november 2007 - 19:48 #22
:)
Avatar billede krel Nybegynder
05. november 2007 - 19:59 #23
nu vil jeg lige hører dig kort her inden jeg oprette et nyt spm:
kan oprette en tabel og i den tabel, oprette felter i en access database ved brug af asp?
Avatar billede w13 Novice
05. november 2007 - 20:46 #24
Ja, det mener jeg. Men har aldrig selv prøvet. Ved ikke, om du skal have særlige rettigheder til det, eller hvilke koder du skal bruge.
Avatar billede w13 Novice
05. november 2007 - 20:53 #25
Hvad skulle du da bruge det til?
Avatar billede krel Nybegynder
05. november 2007 - 21:09 #26
det er fordi jeg skal lave en hjemmeside til min svoger og deres lille loge og så ville jeg gerne lave en funktion så de slev kan oprette afstmning hver medlem. og så har jeg allerede en funtion til afstemning men der bliver tabellen i db'en jo oprettet af mig fra webstedet af...
Avatar billede w13 Novice
05. november 2007 - 21:31 #27
Jeg tror, du kan gøre det meget lettere. Kan du ikke bare give hver afstemning et nyt id? Det vil i hvert fald spare meget på databasen.

Og sådan har jeg selv gjort engang.
Avatar billede krel Nybegynder
05. november 2007 - 21:37 #28
tjo.. men så skulle man opbygge db'en som:

id spm svar1 svar2 svar3 svar4 svar5

og så bruge id når en bruger opretter en afstemning, men hva så med resultater når de forskellige brugere skulle stemme?
Avatar billede w13 Novice
05. november 2007 - 22:04 #29
Du behøver vel bare et felt til antal stemmer for hvert svar, og så et felt til samlede antal stemmer. Hvis f.eks. du så har "antal stemmer til svar1=10" og du har "samlet antal stemmer=50" og du ved, du har 5 svarmuligheder. Så kan det regnes ud.
Avatar billede krel Nybegynder
05. november 2007 - 22:15 #30
kan ikke lige se det for mig .. var også bare om man kunne opretter nok et nyt spm hvis jeg når dertil .. c",)
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