Avatar billede bentbent Nybegynder
22. september 2003 - 18:16 Der er 22 kommentarer og
1 løsning

2 spalter med med underlæggende sider!

Hejsa eksperter!

Jeg har to tabeller hvor den ene hedder kategori, og den anden hedder tekster! jeg savner et overblik over disse data på én side der skal være i to spalter!

dvs.

.: tabel "kategorier":......
TKID        = unik id
TKoverskrift = overskrift

.: tabel "tekster":......
TKID        = unik id
Tkatagori    = nøgle til kategori felt "TKID"

Jeg ville meget gerne have dataerne listet således!!

Håber der er nogle der kan hjælpe!

TKID=1          TKID=2
- Tkatagori=1    - Tkatagori=2
- Tkatagori=1    - Tkatagori=2
- Tkatagori=1    - Tkatagori=2

TKID=3          TKID=4
Avatar billede eagleeye Praktikant
22. september 2003 - 18:40 #1
Prøv noget som dette, hvor conn er nanvet på din Connection til databasen:

<%
SQL = "SELECT kategorier.TKID, kategorier.TKoverskrift, tekster.Tkatagori FROM kategorier INNER JOIN tekster ON kategorier.TKID=tekster.TKID ORDER BY kategorier.TKID ASC"
Set rs = Conn.Execute(SQL)

lastID = ""
response.write "<table>"
colPrRow = 0
maxPrRow = 2
do while not rs.EOF
  if colPrRow = 0 then Response.write "<tr>"

  if lastID <> rs("TKID") then
    Response.Write "<td>"
    response.write "<table>"
    response.write "<tr><td>TKID:" & rs("TKID") & "</td></tr>"
    lastID = rs("TKID")
    colPrRow = colPrRow + 1
  end if

  response.write "<tr><td>-Tkategori=" & rs("Tkatagori") & "</td></tr>"
 
  rs.Movenext

  if not rs.EOF then
    if lastID <> rs("TKID") then
      Response.Write "</table>"
      Response.Write "</td>"
    end if
  else
    Response.Write "</table>"
    Response.Write "</td>"
  end if

  if colPrRow = maxPrRow then
    colPrRow = 0
    response.write "</tr>"
  end if
loop
if colPrRow > 0 then response.write "</tr>"
response.write "</table>"
%>
Avatar billede bentbent Nybegynder
22. september 2003 - 18:59 #2
Jeg henter på nuværende tidspunkt databasen således:

<!--#include file="../Connections/gratis.asp" -->

database filen!!............
<%
MM_gratis_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\smzdk\www\demo\database\database.mdb"
%>

hvorledes skal jeg ændre conn????
Avatar billede eagleeye Praktikant
22. september 2003 - 19:02 #3
Ok, så prøv at rette disse linjer i den kode jeg har vist:

SQL = "SELECT kategorier.TKID, kategorier.TKoverskrift, tekster.Tkatagori FROM kategorier INNER JOIN tekster ON kategorier.TKID=tekster.TKID ORDER BY kategorier.TKID ASC"
Set rs = Conn.Execute(SQL)


Til dette:

Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT kategorier.TKID, kategorier.TKoverskrift, tekster.Tkatagori FROM kategorier INNER JOIN tekster ON kategorier.TKID=tekster.TKID ORDER BY kategorier.TKID ASC"
rs.Open SQL, MM_gratis_STRING, 1
Avatar billede bentbent Nybegynder
22. september 2003 - 19:10 #4
Nu sker der noget den kommer dog med følgende fejl!

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/demo/sider/test.asp, line 11  -> er rs.Open SQL, MM_gratis_STRING, 1
Avatar billede eagleeye Praktikant
22. september 2003 - 19:16 #5
Har du includet din connection fil?

<!--#include file="../Connections/gratis.asp" -->
Avatar billede bentbent Nybegynder
22. september 2003 - 19:19 #6
det har jeg nu! og den kommer med følgende fejl:
---------------------------------------------------
Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

/demo/sider/test.asp, line 12 -> stadig  rs.Open SQL, MM_gratis_STRING, 1
Avatar billede eagleeye Praktikant
22. september 2003 - 19:22 #7
Prøv at lave disse linjer:

Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT kategorier.TKID, kategorier.TKoverskrift, tekster.Tkatagori FROM kategorier INNER JOIN tekster ON kategorier.TKID=tekster.TKID ORDER BY kategorier.TKID ASC"
rs.Open SQL, MM_gratis_STRING, 1


Om til:

Set rs = Server.CreateObject("ADODB.Recordset")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open  MM_gratis_STRING
SQL = "SELECT kategorier.TKID, kategorier.TKoverskrift, tekster.Tkatagori FROM kategorier INNER JOIN tekster ON kategorier.TKID=tekster.TKID ORDER BY kategorier.TKID ASC"
Set rs = Conn.Execute(SQL)
Avatar billede bentbent Nybegynder
22. september 2003 - 19:22 #8
databasen er ikke tom! der er 3 kategorier med 2-4 underkategorier hver, og en kategori uden underkategorier!
Avatar billede bentbent Nybegynder
22. september 2003 - 19:23 #9
den kommer med samme fejl med den sidst kode!
Avatar billede eagleeye Praktikant
22. september 2003 - 19:28 #10
Er alle tabel og kolonnenavne rigtige i den SQL sætning??

SQL = "SELECT kategorier.TKID, kategorier.TKoverskrift, tekster.Tkatagori FROM kategorier INNER JOIN tekster ON kategorier.TKID=tekster.TKID ORDER BY kategorier.TKID ASC"
Avatar billede eagleeye Praktikant
22. september 2003 - 19:28 #11
Er det TKID i begge tabeller som gør de skal JOIN's?
Avatar billede bentbent Nybegynder
22. september 2003 - 19:29 #12
Ja jeg har kopieret dem direkte fra access databasen!!
Avatar billede bentbent Nybegynder
22. september 2003 - 19:31 #13
tabel: kategorier

TKID, TKoverskrift

Tabel: tekster

TID, Toverskrift, Tkatagori

TKID kan have flere underkategorier og er relateret til Tkatagori
Avatar billede eagleeye Praktikant
22. september 2003 - 19:34 #14
Arh så tebellen i tekster er Tkatagori der høre til TKID i tabellen kategorier:

Prøv lige denne SQL:

SQL = "SELECT kategorier.TKID, kategorier.TKoverskrift, tekster.Tkatagori FROM kategorier INNER JOIN tekster ON kategorier.TKID=tekster.Tkatagori ORDER BY kategorier.TKID ASC"
Avatar billede bentbent Nybegynder
22. september 2003 - 19:43 #15
nu virker det helt perfekt!

Lige en sidste ting, hvis jeg gerne vil have dataerne:

TKoverskrift (dens data f.eks. forside)    istedet for "TKDI:"
- Toverskrift (dens data f.eks. service)  istedet for "- Tkategori="

samt at alle cellerne starter øverest, istedet for at de centreres!
Avatar billede bentbent Nybegynder
22. september 2003 - 19:43 #16
og den aller sidste ting at tabellen er 100% bred
Avatar billede eagleeye Praktikant
22. september 2003 - 19:49 #17
Du kan tilføje de kolonner der er behov for i SQL sætningen evt bare skrive * hvis der ikke er to kolonne som hedder det samme i hver sin tabel:

SQL = "SELECT kategorier.TKID, kategorier.TKoverskrift, tekster.Tkatagori, tekster.Toverskrift FROM kategorier INNER JOIN tekster ON kategorier.TKID=tekster.Tkatagori ORDER BY kategorier.TKID ASC"



Du kan rette denne linje:
response.write "<tr><td>TKID:" & rs("TKID") & "</td></tr>"

Til:
response.write "<tr><td>" & rs("TKoverskrift") & "</td></tr>"


Samt rette denne linje:
  response.write "<tr><td>-Tkategori=" & rs("Tkatagori") & "</td></tr>"

Til:
  response.write "<tr><td>-" & rs("Toverskrift") & "</td></tr>"
Avatar billede bentbent Nybegynder
22. september 2003 - 20:09 #18
helt perfekt!!

hvordan få jeg den til at være 100% bred samt at alt tekst i cellerne altid står øverest!

tak!
Avatar billede eagleeye Praktikant
22. september 2003 - 20:18 #19
Prøv med dette :


lastID = ""
response.write "<table width=""100%"">"
colPrRow = 0
maxPrRow = 2
do while not rs.EOF
  if colPrRow = 0 then Response.write "<tr>"

  if lastID <> rs("TKID") then
    Response.Write "<td valign=""top"">"
    response.write "<table width=""100%"">"
    response.write "<tr><td>" & rs("TKoverskrift") & "</td></tr>"
    lastID = rs("TKID")
    colPrRow = colPrRow + 1
  end if

  response.write "<tr><td>-" & rs("Toverskrift") & "</td></tr>"
 
  rs.Movenext

  if not rs.EOF then
    if lastID <> rs("TKID") then
      Response.Write "</table>"
      Response.Write "</td>"
    end if
  else
    Response.Write "</table>"
    Response.Write "</td>"
  end if

  if colPrRow = maxPrRow then
    colPrRow = 0
    response.write "</tr>"
  end if
loop
if colPrRow > 0 then response.write "</tr>"
response.write "</table>"
%>
Avatar billede bentbent Nybegynder
22. september 2003 - 20:36 #20
Du er kongen!! tak skal du have!!!
Avatar billede bentbent Nybegynder
22. september 2003 - 20:48 #21
UPS! jeg har fundet en lille mangel, hvis vi kan nå at rette den??

Hvis der ikke er nogle underkategorier i nogle af kategorierne, bliver kategorierne ikke vist! hvordan kan man gøre det således at de også bliver vist hvis der ikke er underkategorier!!
Avatar billede eagleeye Praktikant
22. september 2003 - 20:53 #22
Så prøv at rette i SQL sætningen: 
INNER JOIN

Til:
LEFT JOIN

så skulle medtage alle også selvom der ikke er nogle underkategorier..:

SQL = "SELECT kategorier.TKID, kategorier.TKoverskrift, tekster.Tkatagori, tekster.Toverskrift FROM kategorier LEFT JOIN tekster ON kategorier.TKID=tekster.Tkatagori ORDER BY kategorier.TKID ASC"
Avatar billede bentbent Nybegynder
22. september 2003 - 20:55 #23
tak skal du have!!
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