22. maj 2005 - 16:15Der er
26 kommentarer og 1 løsning
Link som returnerer data fra 2 forskellige tabeller
Jeg sidder med en database hvori jeg returnerer nogle forskellige data og nogle af disse data bliver så linket så der kan krydsrefereres rundt omkring i dataene. Jeg har så en side hvor der er et start navn som henter data fra felt hvor f.eks squad="squad 01" men hvor det også kan være squad="desperado squad" men nu ligger verden sådan at lige præcis den værdi ligger i en anden tabel i databasen hvordan gør jeg i asp koden så den ved den værdi henter data fra den anden tabel og det andet data fra den første tabel ? Samtidig har jeg lidt problemer med i linket at få " " omkring hvor skal dette gøres ?
Jeg er ikke helt med på hvad du helt præcis mener med de to databaser. Kan du give et konkret eksempel? Det med " i asp i en response.write der skal de blot escapes dobbelt Response.Write "<td width=""125"" align=""left""><a href=""squadname.asp?squadname=" &rs("Qualifiedfrom")& """>" &rs("Qualifiedfrom") &"</td>"
Der mangler vel i øvrigt for synets skyld også en </a> ;o) Response.Write "<td width=""125"" align=""left""><a href=""squadname.asp?squadname=" &rs("Qualifiedfrom")& """>" &rs("Qualifiedfrom") &"</a></td>"
Hvordan ser din sql ud? Som den er nu giver den dig jo en error kan jeg se pga "missing operator" Har du husket plinger ' rundt om det squad navn du henter fra din querystring?
Generelt er der intet problem i at hente data fra to tabeller Du skal blot bruge to sql statements sql1 = select * from tabel1 sql2 = select * from tabel2
Jeg har fået plingers med nu så nu virker den del. Okey så vil jeg lave 2 SQL statements der er så dog stadig det problem med at den skal udfra hvad den returnerer af data enten tage data fra den ene tabel eller den anden. Hvis den f.eks returnerer "Squad 01" skal den tage fra tabel 1 og hvis den f.eks returnerer "Desperado squad" skal den tage data fra tabel 2, det må jo være noget if kode i asp filen?
if (request.querystring("squadname") = "Desperado squad") then sql = "Select * From tabel1" else sql = "Select * From tabel2" end if conn.execute(sql) -- sådan?
Du skal vel bare rette denne her: ---- ' SQL forespørgsel strSQL = "SELECT* FROM Websquadstandings WHERE squadname = " &(squadnm)& "" ' Her udføres forespørgsel på data (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL) ---- til ---- if squadnm = "Desperado squad" then strSQL = "SELECT * FROM den_anden_tabel" else strSQL = "SELECT * FROM Websquadstandings WHERE squadname = " &(squadnm)& "" end if Set rs = Conn.Execute(strSQL)
Okey det ser ud til at være fint nok men nu kommer jeg til at se at feltnavnene ikke er det samme i de 2 tabeller, er det ikke muligt at få den til at linke til en anden asp fil ved værdi returneringen "Desperado squad" filen hedder desperado.asp og indeholder data fra den anden tabel. Hvordan gør jeg lige det ?
Da du har "-tegnet i dine links, vil variablen 'squadnm' aldrig indeholde 'Desperado squad'.. Jeg henviser til din IF-sætning: if squadnm = "Desperado squad" then
2) Du mangler at afsluttes dine A-tags med </a>, dvs:
3) Du har en fejl i din SQL-sætning. Request.Querystring indeholder en streng-værdi, og ikke en tal-værdi.. værdien SKAL derfor være omgivet af '-tegnet
Jeg er ikke helt med på hvad med du mener med - tegnet i mine links ?
Det andet jeg forespørger tidligere hvordan gøres dette lige for den anden måde var jo fin hvis felt navne og design skulle være det samme men det er det desværre ikke
Der skal ikke være gåse øjne i din streng denne her for eksempel <a href='squadname.asp?squadname="Squad 02"'> skal være <a href='squadname.asp?squadname=Squad 02'>
mrdj >> som svar på 17:13:26 Jo du laver bare dine links forskellige type 1 - <a href='squadname.asp?squadname=Squad 02'> type 2 - <a href='desperado.asp'>
I din problem.asp laver du denne linje om så Response.Write "<td width=125 align=left> " & " <a href='squadname.asp?squadname=""" & rs("Qualifiedfrom") & """'>" &rs("Qualifiedfrom") & "</td>" til if rs("Qualifiedfrom") = "Desperado squad" then Response.Write "<td width=125 align=left><a href='desperado.asp'>" &rs("Qualifiedfrom") & "</a></td>" else Response.Write "<td width=125 align=left><a href='squadname.asp?squadname=" & rs("Qualifiedfrom") & "'>" &rs("Qualifiedfrom") & "</a></td>" end if
Mht. gåseøjne hvis ikke de er der får jeg fejl på returneringen af data.
Jeg forstår ikke helt hvad du mener mht. ændringen af linkt. Hvis nu jeg ligger filen til download igen kan du så ikke ligge den del jeg skal ændre op herpå
hmm underligt..så behold gåseøjnene Det jeg mener har jeg skrevet 17:43:30..pånær så gåse øjnene ;o) Du skrev selv om du kunne linke til en anden side fordi felterne i tabellerne ikke hed det samme Det kan du jo gøre ved netop at lave en link til den ene side hvis det er desperado og en anden side ellers...som skrevet Kan vist ikke skrive det meget bedre
Det er jeg helt med på, jeg kan bare ikke få det til at fungere når jeg sætter det ind i koden og det var derfor jeg tænkte du måske ville finde stederne og sætte det ind i koden og så ligge koden herop på bagefter? Så jeg var sikker på det blev gjort rigtigt
Jamen det er jo...hehe..det er jo det jeg har gjort 17:43:30 Din linje --- Response.Write "<td width=125 align=left> " & " <a href='squadname.asp?squadname=""" & rs("Qualifiedfrom") & """'>" &rs("Qualifiedfrom") & "</td>" --- i filen problem.asp skal udskiftes med --- if rs("Qualifiedfrom") = "Desperado squad" then Response.Write "<td width=125 align=left><a href='desperado.asp'>" &rs("Qualifiedfrom") & "</a></td>" else Response.Write "<td width=125 align=left> " & " <a href='squadname.asp?squadname=""" & rs("Qualifiedfrom") & """'>" &rs("Qualifiedfrom") & "</td>" end if ---
JAmen så vil jeg da smide et svar... den øverste kan gå af for alle af og til jo ;o) Jeg er ikke helt med på hvad du mener med feltet G1? Hvis det er fra databasen kan du vel gøre noget ala if rs("G1") = 300 then response.write "<td bgcolor='#FFFFFF'><i>"&rs("G1")&"</i></td>" else response.write "<td bgcolor='#000000'>"&rs("G1")&"</td>" end if
Jamen jeg siger mange tak for hjælpen så langt, det kan jo være der kommer noget senere, men så opretter jeg bare et nyt spørgsmål der og håber på ligeså god hjælp :-)
Lige en sidste ting hvis nu det er flere felter det drejer sig om hvordan gør man så lige? Har felterne G1, G2, G3, G4, G5 og G6 det drejer sig der skal tjekkes for en værdi på 300
if rs("G1") = 300 or rs("G2") = 300 or rs("G3") = 300 osvosv then kode som udføres hvis en af dem er 300 else kode som udføres hvis ingen er 300 end if
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.