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>"
<% 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>"%>
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
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 Så response.write "</tr></table>" bør udskiftes med if counter <> 0 then response.write "</tr></table>" else response.write "</table>" end if
<% 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%>
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
<% 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 %>
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 %> --
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 %>
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
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
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
- 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..
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 %>
<% 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 %>
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
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?
<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
Synes godt om
Ny brugerNybegynder
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.