25. september 2005 - 23:57Der er
14 kommentarer og 1 løsning
galleri accessDB - antal tabelrækker
Jeg har et udtræk fra en db herunder. Hvordan placere jeg opjekt inde i tabel/celle med eget valg af tabelrækker. Ikke noget problem at lave en række som bare fortsætter enten vanret eller lodret også hvor billedet befinder sig i en celle (ikke omkranset af en´stor tabel) men dete r ligesom ikke hensigten..:| Det skulle gerne være muligt at ændre border også men er bange for der opstår et problem med "linkborder" Dette er koden:
måske jeg forklare for meget her :) ..eller spørger om for meget på en gang...
Dette udtræk af billeder i db fortsætter jo bare i en´lang række. Dette forandre sig ikke når jeg ligger opjektet ind i en tabel. Der skulle gerne være et "brud" så jeg selv kan bestemme antal columns og rows.
Jeg har en anden kode der er rettet til dette men der er der en fejl i jeg ikke kan gennemskue. Det er det jeg mener med at den blå/røde "linkborder" omkring billederne som du kan se i koden kunne komme til at lave et problem med border i en tabel der bliver lagt ind i koden. Det er sket i den anden kode jeg har. Men glem dette, måske du har en løsning til første del af spørgsmålet
ok... hvis jeg har forstået dig korrekt så søger du at kunne sætte billederne ind i en tabel ved billederne i hver sin celle: Du gør det at du laver en tabel og sætter din løkke derind som følgende:
Dette vil sætte alle billederne under hinanden og du kan 'styre' layout via table eller td tag'ene.
Hvis du vil ha' billederne stående i mere komplekse opsætninger må du lige sige til så vil jeg uddybe, men det tager lidt tid så hvis det ikke er nødvendigt så vil jeg ikke bruge tiden på det :)
det er skam ikke noget problem for mig at ligge billederne i en tabel som du gør der. ..som jeg også skrev i mit spørgsmål. Jeg har brug for at billeder FX står 4 af gangen vandret og nedefter lodret. En noget mere logisk kode end nedenstående. (der er foriøvrigt også en fejl i som får tabellen til at ligge sig under billederne) jeg kan vise dig et eks. på en site. jeg må dsv afvise dette svar da jeg kan dette selv.
strSQL = "SELECT stiLilleBillede, stiStortBillede, * FROM billedTabel"
Set rs = Conn.Execute(strSQL)
if rs.EOF then Response.write "ingen billeder i databasen" else colPrRow = 3 colInRow = 0 response.write "<table width=""400"" border=""0"" align=""center"">" do while NOT RS.EOF if colInRow = 0 then response.write "<tr>" response.write "<a href='show.asp?id=" & rs("id") & "' target=''><img src='" & rs("stiLilleBillede") & "'style=border: 0px'></a> " colInRow = colInRow + 1 if colInRow >= colPrRow then colInRow = 0 response.write "</tr>" end if RS.MoveNext loop if colInRow > 0 then Response.Write "</tr>" end if response.write "</table>" end if
jeg har været nød til at bruge et for i det heletaget at adskille opjektet - for tabellen "<table width=""400"" border=""0"" align=""center"">" ligger sig under/udenfor galleriet, det er det der er problemet. Ville meget gerne have hvis du ville uddybe dette.
ok :) Sorry.. Nu er jeg med - håber jeg. For det første mangler du en <td> </td> omkring dine <a /> tag. For det andet ville jeg bygge din kode lidt nemmere op:
strSQL = "SELECT stiLilleBillede, stiStortBillede, * FROM billedTabel"
Set rs = Conn.Execute(strSQL)
if rs.EOF then Response.write "ingen billeder i databasen" else colPrRow = 3 colInRow = 0 response.write "<table width=""400"" border=""0"" align=""center"">" do while NOT RS.EOF
if colInRow mod colPrRow = 0 then response.write "<tr>" end if colinRow = colInRow + 1
strSQL = "SELECT stiLilleBillede, stiStortBillede, * FROM billedTabel"
Set rs = Conn.Execute(strSQL)
if rs.EOF then Response.write "ingen billeder i databasen" else colPrRow = 3 colInRow = 0 response.write "<table width=""400"" border=""0"" align=""center"">" do while NOT RS.EOF
if colInRow mod colPrRow = 0 then response.write "<tr>" end if
Og du bør nok tilføje en ekstra test - hvis antallet af billeder ikke er deleligt med 3 så lukker den ikke tabellen ordentligt. Derfor skal du nok lave en:
If colInRow mod colPrRow <> 3 then while colInRow mod colPrRow <> 3 response.write "<td></td>" colInRow = colInRow + 1 loop response.write "</tr>" end if
Nu bliver det nok lidt rodet, men det burde gøre det...
vil lige finde logikken i koden...denne er jo rimeligt afgørende på mange områder og har ikke kunne finde dette i bøger eller på nettet. Men spørgsmålet er om den kan skrives helt anderledes?? Eller om dette er den eneste måde at dele det op på?
Det er helt sikkert ikke den eneste måde. Idéen er at man skal finde en måde at dele det op på. Her er mod-fuktionen benyttet, men der er helt sikkert mange andre måder. Fordelen ved denne metode er at den er helt dynamisk - dvs. vil du pludselig ha' 4 billeder på række så ændrer du blot colPrRow til 4 og så klarer koden resten :)
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.