Avatar billede no_doubt Nybegynder
25. juni 2005 - 23:53 Der er 45 kommentarer og
1 løsning

udskrivning i kolonner og række

Hvordan kan jeg løbe igennem en database og få udskrevet dataerne sådan.

Id 1    Id 2    Id 3    Id 4

Id 4    Id 5    Id 6    Id 6

osv osv
Avatar billede no_doubt Nybegynder
26. juni 2005 - 00:09 #1
sådan skal det se ud (dette er bare lavet i html) og kører ikke igennem en db

http://frip.dk/havrefras/test2/medlemmer.asp
Avatar billede busschou Praktikant
26. juni 2005 - 01:07 #2
er det bevidst at du ønsker id4 og id6 to gange?
Hvis du blot ønsker at have de fire første i første række, fire næste i næste række og så videre. Så kan du jo bare lave en tæller som holder øje
ala:
----
set rs = conn.execute("Select * From din_tabel Order By Id")
counter = 0
response.write "<table>"
Do While Not rs.EOF
  if counter = 0 then
    response.write "<tr>"
  end if
  counter = counter+1
  response.write "<td>"&rs("id")&"</td>"
  if counter = 4 then
    counter = 0
    response.write "</tr>"
  end if
  rs.MoveNext
Loop
response.write "</tr></table>"
Avatar billede no_doubt Nybegynder
26. juni 2005 - 01:14 #3
Har prøvet det du lavede med lidt ændring..'

                        <%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
set rs = conn.execute("Select * From brugere Order By Id")
counter = 0
response.write "<table>"
Do While Not rs.EOF
  if counter = 0 then
    response.write "<tr>"
  end if
  counter = counter+1%>
  <td><img border="0" src="brugere/<%=rs("brugernavn")%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px"></td>
  <%rs.movenext
  if counter = 4 then
    counter = 0
    response.write "</tr>"
  end if
  rs.MoveNext
Loop
response.write "</tr></table>"%>
Avatar billede busschou Praktikant
26. juni 2005 - 01:17 #4
yes virker det ikke?
Avatar billede no_doubt Nybegynder
26. juni 2005 - 01:26 #5
Der kommer kun 4 bílleder ud...
Avatar billede no_doubt Nybegynder
26. juni 2005 - 01:26 #6
havde der været 16 medlemmer skulle der være 4 rækker med 4 i hver..
Avatar billede busschou Praktikant
26. juni 2005 - 01:30 #7
Det burde virke, uanset hvad så burde den selvom tabel strukturen fejler spytte alle billederne ud. For der er ingen betingelse på <td> med billedet i og Den looper til rs er tom
Avatar billede busschou Praktikant
26. juni 2005 - 01:32 #8
Så hvis der er 16 bør der komme 16 billeder ud
Men jeg kan se i koden at når der er et antal som går op i fire så kommer der en </tr> for meget med

response.write "</tr></table>"
bør udskiftes med
if counter <> 0 then
response.write "</tr></table>"
else
response.write "</table>"
end if
Avatar billede no_doubt Nybegynder
26. juni 2005 - 01:38 #9
Kan du ikke lige flette det ind i mit der er to steder med det du skriver
Avatar billede busschou Praktikant
26. juni 2005 - 01:42 #10
<%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
set rs = conn.execute("Select * From brugere Order By Id")
counter = 0
response.write "<table>"
Do While Not rs.EOF
  if counter = 0 then
    response.write "<tr>"
  end if
  counter = counter+1%>
  <td><img border="0" src="brugere/<%=rs("brugernavn")%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px"></td>
  <%rs.movenext
  if counter = 4 then
    counter = 0
    response.write "</tr>"
  end if
  rs.MoveNext
Loop
if counter <> 0 then
response.write "</tr></table>"
else
response.write "</table>"
end if%>
Avatar billede busschou Praktikant
26. juni 2005 - 01:42 #11
Men det ændrer ikke på at de 16 billeder bør komme ud, hvis der altså er 16 billeder
Avatar billede no_doubt Nybegynder
26. juni 2005 - 01:51 #12
Hvorfor ikke ?
Avatar billede no_doubt Nybegynder
26. juni 2005 - 01:54 #13
Nej det kan jeg se nu men hvordan kan det være
Avatar billede no_doubt Nybegynder
26. juni 2005 - 02:02 #14
Er du der...
Avatar billede no_doubt Nybegynder
26. juni 2005 - 03:06 #15
håber meget du kommer tilbage eller en anden vil kommentere på det.
Avatar billede busschou Praktikant
26. juni 2005 - 09:57 #16
sorry, faldt altså i søvn, var lidt sent :o)
Avatar billede no_doubt Nybegynder
26. juni 2005 - 16:58 #17
Bare ok...hvad var fejlen
Avatar billede busschou Praktikant
26. juni 2005 - 17:00 #18
det var ikke en fejl jeg faldt i søvn ;o)
spøg til side
Jeg kan altså ikke se nogen fejl
Det er et loop som udskriver _alle_ billeder i dit udtræk fra db
Derimellem indsætter den på nogle betingelser <tr> og </tr>
Men den bør udskrive det hele
og jeg kan desværre ikke se ud af koden hvorfor den ikke gør det
Avatar billede no_doubt Nybegynder
26. juni 2005 - 17:04 #19
Mærkeligt...

Det ser sådan ud:

<%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
set rs = conn.execute("Select * From brugere Order By Id")
counter = 0
response.write "<table>"
Do While Not rs.EOF
  if counter = 0 then
    response.write "<tr>"
  end if
  counter = counter+1%>
  <td><img border="0" src="brugere/<%=rs("brugernavn")%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px"></td>
  <%rs.movenext
  if counter = 4 then
    counter = 0
    response.write "</tr>"
    end if
  rs.MoveNext
Loop
if counter <> 0 then
response.write "</tr></table>"
else
response.write "</table>"
end if%>
<%
Conn.Close
Set Conn = Nothing
%>
Avatar billede busschou Praktikant
26. juni 2005 - 17:11 #20
er du sikker på du har flere records? Lyder som et dumt spørgsmål ved jeg godt
Men prøv sådan her som jo egentlig er det samme som ovenstående i princippet
---
<%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
set rs = conn.execute("Select * From brugere Order By Id")
Do While Not rs.EOF %>
  <img border="0" src="brugere/<%=rs("brugernavn")%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
<%
Conn.Close
Set Conn = Nothing
%>
--
Avatar billede busschou Praktikant
26. juni 2005 - 17:11 #21
hov der fik jeg fjernet loopet
sådan her
---
<%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
set rs = conn.execute("Select * From brugere Order By Id")
Do While Not rs.EOF %>
  <img border="0" src="brugere/<%=rs("brugernavn")%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
<%
rs.movenext
loop
Conn.Close
Set Conn = Nothing
%>
Avatar billede no_doubt Nybegynder
26. juni 2005 - 17:16 #22
Avatar billede busschou Praktikant
26. juni 2005 - 17:20 #23
hvad er frip.dk ?... det står godt nok og tænker meget langsomt ;o)
Avatar billede busschou Praktikant
26. juni 2005 - 17:21 #24
den siger forkert brugernavn eller pass
Avatar billede no_doubt Nybegynder
26. juni 2005 - 17:22 #25
snup 2 gange david
Avatar billede busschou Praktikant
26. juni 2005 - 17:25 #26
når jeg kigger under medlemmer ser det da godt nok ud ?
Avatar billede no_doubt Nybegynder
26. juni 2005 - 17:26 #27
Jamen jeg vil have en counter på... så jeg selv kan rette antallet
Avatar billede busschou Praktikant
26. juni 2005 - 17:33 #28
Ok har lige luret i kilden
På min skærm står der fire billeder øverst og fire neders, og det uden at de er i en table
Så prøv nøjes med blot at tælle
---
<%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
set rs = conn.execute("Select * From brugere Order By Id")
antal = 6
Do While Not rs.EOF And antal > 0 %>
  <img border="0" src="brugere/<%=rs("brugernavn")%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
<%
antal = antal - 1
rs.movenext
loop
Conn.Close
Set Conn = Nothing
%>
---
Så burde du kunne styre det den vej
Avatar billede no_doubt Nybegynder
26. juni 2005 - 17:45 #29
hvis antal = 2 så kommer der to og ikke flere.
Avatar billede busschou Praktikant
26. juni 2005 - 17:57 #30
altså , som jeg forstod dig oprindeligt så ønskede du at have fire i hver række
Hvis du også vil styre hvor mange rækker , eller hvis du vil styre x billeder i bredden og y billeder i højden. så er det jo en lidt anden snak
Men det ændrer stadig ikke på at jeg ikke fatter hvorfor mit første foreslag ikke skrev dem alle 8 ud
Avatar billede no_doubt Nybegynder
26. juni 2005 - 18:01 #31
Hvis jeg vælger tallet 4 skulle der gerne komme 4 på en række også flytte ned på næste "linje" og skrive fire mere.
Avatar billede busschou Praktikant
26. juni 2005 - 18:03 #32
godt så. så vil jeg stadig mene at mit forslag 26/06-2005 01:42:17 burde virke
jeg kan desværre ikke se hvorfor det ikke gør det.
Avatar billede no_doubt Nybegynder
26. juni 2005 - 18:10 #33
den er prøvet igen og 4 kommer ud.
Avatar billede busschou Praktikant
26. juni 2005 - 18:11 #34
ok så giver jeg op,,, sorry :o(
Avatar billede no_doubt Nybegynder
26. juni 2005 - 18:32 #35
okay...rimelig træls. Du ville ikke prøve at have siden ?
Avatar billede busschou Praktikant
26. juni 2005 - 18:34 #36
have siden?
Avatar billede busschou Praktikant
26. juni 2005 - 18:35 #37
jeg tror ikke det hjælper meget, for hvis jeg har lavet en fejl i det jeg gav dig , så har jeg stirret mig blind på den desværre
Det er ikke fordi jeg ikke vil hjælpe
Men jeg kan slet ikke gennemskue at det ikke skulle virke - det burde det
Avatar billede no_doubt Nybegynder
26. juni 2005 - 18:42 #38
Ja.

Nå okay
Avatar billede thesurfer Nybegynder
27. juni 2005 - 14:29 #39
Dvs:

- Der er en masse brugere i databasen (antallet er irrelevant)
- Alle brugerne (billederne) skal hives ud fra databasen
- Udskriften (billederne) skal deles op, så der er 4 brugere per række..

1) Er dette korrekt?
2) Er der andet?

/theSurfer
Avatar billede thesurfer Nybegynder
27. juni 2005 - 14:32 #40
hvad bruges "antal" til ("antal = 6" og "...rs.EOF And antal > 0")..?

/theSurfer
Avatar billede thesurfer Nybegynder
27. juni 2005 - 14:43 #41
Eksempel med en array, der simulere data-udtræk.. koden laver rækker, med 4 billeder per række..

<%
' disse 2 rs-linier, simulerer data-udtræk:
rs = "mark,david,henry,sune,hans,ole,henrik,jens"
rs = split(rs, ",")

antal_per_raekke = 4 ' antallet af brugere per række

for brugernavn = 0 to ubound(rs) ' svarer til: do while not rs.eof
    if brugernavn mod antal_per_raekke = 0 then
        response.write "<br>"
    end if
%>
  <img border="0" src="brugere/<%=rs(brugernavn)%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
<%
next ' svarer til: rs.movenext
%>

/theSurfer
Avatar billede no_doubt Nybegynder
27. juni 2005 - 16:08 #42
det ser heller ikke ud til at virke...

Din kode ser ud som følger med mit database kald.

<%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
set rs = conn.execute("Select * From brugere")

antal_per_raekke = 4 ' antallet af brugere per række

for brugernavn = 0 to ubound(rs) ' svarer til: do while not rs.eof
    if brugernavn mod antal_per_raekke = 0 then
        response.write "<br>"
    end if
%>
  <img border="0" src="brugere/<%=rs(brugernavn)%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
<%
next ' svarer til: rs.movenext
%>
Avatar billede thesurfer Nybegynder
27. juni 2005 - 16:39 #43
Du kan ikke blande min kode, og din kode.. så går det ikke :-)
Jeg lavede array-eksemplet, fordi jeg ikke gad at oprette en database, og fylde den med brugere :-)

prøv med:

set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
set rs = conn.execute("Select * From brugere")

antal_per_raekke = 4 ' antallet af brugere per række
dim i
i = 0

do while not rs.eof
i = i + 1
    if i mod antal_per_raekke = 0 then
        response.write "<br>"
    end if
%>
  <img border="0" src="brugere/<%=rs("brugernavn")%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
<%

rs.movenext
loop

rs.close
set rs = nothing

Conn.Close
Set Conn = Nothing

%>

Det kan godt være, at linien "i = i + 1" skal stå EFTER IF-sætningen, så det ser sådan ud:

    if i mod antal_per_raekke = 0 then
        response.write "<br>"
    end if
        i = i + 1

/theSurfer
Avatar billede no_doubt Nybegynder
27. juni 2005 - 21:05 #44
Er det muligt der er et sted i koden jeg kan sikre mig mod folk ikke har et billede således at den udskriver et "Intet billede" ved dem der ikke har.
Avatar billede no_doubt Nybegynder
27. juni 2005 - 21:09 #45
Og kan jeg komme til at udskriver deres navn fra databasen under deres billede også ?
Avatar billede thesurfer Nybegynder
28. juni 2005 - 17:59 #46
Jeg har oprettet et ekstra felt, kaldet "billede". Det er af typen "Ja/Nej". Der kan du krydse af, om en bruger har et billede eller ej.

Hvis du ikke vil bruge et ekstra felt ("billede"), kan du f.eks. teste/check om billedet faktisk eksisterer.. men det kræver at du har adgang til FileSystemObject.. Har du det?

Hvis du vil teste om du har adgang til FileSystemObject, se: http://www.frip.dk/thesurfer/objtest_info.asp

<hr><br><br>

<table>
<tr>
<%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
set rs = conn.execute("Select * From brugere")

antal_per_raekke = 4 ' antallet af brugere per række

do while not rs.eof

    if i mod antal_per_raekke = 0 and i > 0 then
        response.write "</tr><tr>"
    end if
    i = i + 1

    billede = "intet_billede" ' hvis der ikke er noget billede, hentes "intet_billede" (dvs, "intet_billede.jpg")
    if rs("billede") = true then billede = rs("brugernavn")
%>
    <td><img border="0" src="brugere/<%=billede%>.jpg" width="92" height="100" style="border-style: solid; border-width: 1px;padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px"><center><b><%=rs("brugernavn")%></b></center></td>
<%
rs.movenext
loop

rs.close
set rs = nothing

conn.close
set conn = nothing
%>
</tr>
</table>

/theSurfer
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