Avatar billede duno Nybegynder
29. januar 2004 - 12:39 Der er 12 kommentarer og
1 løsning

Sammenlign 2 tabeller

Hej jeg vil hente data fra 2 tabeller samtidig, og dataen skal så sammenlignes på følgende måde

Tabel1.Ikoner
Tabel2.Ikonmedlem

Den skal vise alle ikoner fra Tabel1.ikoner, hvis ikonet også er i Tabel2.ikonmedlem skal den skrive een linie tekst under ikonet.. er ikonet ikke i tabel2.ikonmedlem skal den skrive en anden line tekst.

Enten sådan eller:

Når man gennemser alle ikoner ligger de som et link som man kan trykke på og så bliver ikonet vist til højre for scrollbaren... var det muligt allerede der at undersøge om ikonet også fandtes i tabel2.ikonmedlem??
Avatar billede eagleeye Praktikant
29. januar 2004 - 17:25 #1
SQL = "select tabel1.ikoner, tabel2.ikonmedlem from tabel1 left join tabel2 on tabel1.ikoner = tabel2.ikonmedlem"
Set rs=conn.Execute(SQL)
response.write "<table>"
do while not rs.EOF
  response.write "<tr>"
  Response.Write "<td>" & rs("ikoner")
  if ""&rs("ikonmedlem")<>"" then Response.write "<br>"&rs("ikonmedlem")
  Response.Write "</td>"
  Response.Write "</tr>"
  rs.Movenext
loop
Response.Write "</table>"
Avatar billede duno Nybegynder
29. januar 2004 - 21:34 #2
Jeg får en siden kan ikke vises.. så jeg vedlægger lige koden

jeg har rettet det så det var "forklarende tabeller og felter"


<%
Set database = Server.CreateObject ("ADODB.Connection")
database.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/webs/db/forum.mdb")

SQL = "select FORUM_AVATAR.A_URL , FORUM_MEMBERS.M_AVATAR_URL from FORUM_AVATAR left join FORUM_MEMBERS on FORUM_AVATAR.A_URL  = FORUM_MEMBERS.M_AVATAR_URL "
Set rs=conn.Execute(SQL)
%>
<html>
<title>test</title>
<body bgcolor="#FFFFFF" text="#000000">

<%
response.write "<table>"
do while not rs.EOF
  response.write "<tr>"
  Response.Write "<td>" & rs("A_URL")
  if ""&rs("M_AVATAR_URL")<>"" then Response.write "<br>"&rs("M_AVATAR_URL")
  Response.Write "</td>"
  Response.Write "</tr>"
  rs.Movenext
loop
Response.Write "</table>"
%>
</body>
</html>

er det måske muligt at undlade at vise de ikoner som allerede er brugt, altså dem der er et link til i FORUM_MEMBERS.M_AVATAR_URL

Jeg undskylder hvis spørgsmålet bliver drejet.. men kom til at tænke da det ikke virkede (det kan jeg godt advare imod... man får en masse fjollede ideer)
Avatar billede eagleeye Praktikant
29. januar 2004 - 21:46 #3
Hvad indeholder de to kolonne helt præsist?

Du skulle gerne få en bedre fejl kode/beskrivelse ved at slå denne fra i IE:
funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"
Avatar billede duno Nybegynder
29. januar 2004 - 21:58 #4
Microsoft VBScript runtime error '800a01a8'

Object required: 'conn'

/test123.asp, line 8
Avatar billede eagleeye Praktikant
29. januar 2004 - 21:59 #5
arh ok den connection hedder database så prøv at rette linje 8 til:

Set rs=database.Execute(SQL)
Avatar billede duno Nybegynder
29. januar 2004 - 22:00 #6
Navne på mine ikoner

bamse.jpg, fro.jpg.. osv i begge kolonner
Avatar billede duno Nybegynder
29. januar 2004 - 22:09 #7
så køre den.. men kan ikke helt forstå udskriften.. derer flere af nogen af dem.. og kun en enkelt af andre.. alle filer ligger i samme mappe.. så der kan jo ikke være flere af den samme fil

viser lige et udsnit

disney-kaniner.gif
disney-kat.gif
disney-monster.gif
disney-monsters2.gif
disney-monsters2.gif
disney-stinkdyr.gif
frugtkurv.gif
helleu.gif
helleu.gif
kaninkærlighed.gif
kermit.gif
kirsebær.gif
loven.gif
moppetshow3.gif
muppetshow1.gif
muppetshowbaby.gif
muppetshowbabyf.gif
muppetshowbabyp.gif
muppetshowbabys.gif
muppetshowbabys.gif
muppetshownimal.gif
peterplyshjerte.gif
peterplyshjerte.gif
skorpion.gif
skorpion.gif
skorpion.gif
skorpion.gif
skorpion.gif
skorpion.gif

Men nu viser den da begge typer.. uden nogen kommentar så langt så godt ""GG""

Hvordan får jeg den så til at tjekke om det samme link ligger i begge databaser og derved siger at det er optaget...??
Avatar billede eagleeye Praktikant
29. januar 2004 - 22:20 #8
ok på den måde så prøv at rette loopet til:


do while not rs.EOF
  response.write "<tr>"
  Response.Write "<td>" & rs("A_URL")
  if ""&rs("M_AVATAR_URL")<>"" then Response.write "<br>  Optaget"
  Response.Write "</td>"
  Response.Write "</tr>"
  rs.Movenext
loop
Avatar billede duno Nybegynder
30. januar 2004 - 00:29 #9
HEP!!!!

Så er vi jo lige ved at være der.. men der kommer stadig mange af den samme... findes der ikke sådan en øøhhh destinct et eller andet eller sådan noget som man kan bruge til at sikre sig en version af alle "posterne"???
Avatar billede eagleeye Praktikant
30. januar 2004 - 00:30 #10
Jo du kan sætte distinct ind efter select:

SQL = "select distinct FORUM_AVATAR.A_URL , FORUM_MEMBERS.M_AVATAR_URL from FORUM_AVATAR left join FORUM_MEMBERS on FORUM_AVATAR.A_URL  = FORUM_MEMBERS.M_AVATAR_URL "
Avatar billede duno Nybegynder
30. januar 2004 - 00:43 #11
Jeg ved ikke om jeg må drive dig til vanvid.. men jeg tager chancen!!

Det der sku skide godt ud rigtig rigtig godt ud!!

Men kan jeg sætte farver på teksterne eks rød for optaget grøn for ledig.. og kan jeg sætte det i en mere overskulig ramme eks 4 - 4 felter bred.. og uendelig lang (altså kun så lang som er der ikoner til???)
Avatar billede eagleeye Praktikant
30. januar 2004 - 16:52 #12
Så prøv sådan her:

<%
Set database = Server.CreateObject ("ADODB.Connection")
database.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/webs/db/forum.mdb")

SQL = "select distinct FORUM_AVATAR.A_URL , FORUM_MEMBERS.M_AVATAR_URL from FORUM_AVATAR left join FORUM_MEMBERS on FORUM_AVATAR.A_URL  = FORUM_MEMBERS.M_AVATAR_URL "
Set rs=conn.Execute(SQL)
%>
<html>
<title>test</title>
<body bgcolor="#FFFFFF" text="#000000">
<%
response.write "<table>"
maxPrRow=4
prRow = 0
do while not rs.EOF
  if prRow = 0 then response.write "<tr>"
  Response.Write "<td>" & rs("A_URL")
  Response.write "<br><font color="
  if ""&rs("M_AVATAR_URL")<>"" then
    Response.write """red"">Optaget"
  else
    Response.write """green"">Ledigt"
  end if
  Response.write "</font>
  Response.Write "</td>"

  prRow = prRow + 1
  if maxPrRow = prRow then
    prRow = 0
    Response.Write "</tr>"
  end if
  rs.Movenext
loop
if prRow > 0 then Response.Write "</tr>"
Response.Write "</table>"
%>
</body>
</html>
Avatar billede duno Nybegynder
31. januar 2004 - 15:06 #13
Hej du er jo ikke bare go!

Du er jo ligenu blevet min helt!!

Jeg sender points med det samme..

Men jeg har flere tiltag til den tabel.. syntes bare ikke rigtig der er mere pladsi denne tråd.. du får lige et link til den nye hvis det har interesse

http://www.eksperten.dk/spm/459381

Mange tak for hjælpen!!!
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