Jag har problem att få ut den informationen jag vill ha ut från databasen.
Har följande kod:
Set objRS = objConn.Execute("SELECT spelare_statistik.statID, spelare_statistik.playerID, spelare_statistik.statSasongID, spelare_statistik.statTavling, spelare_statistik.klubbID, spelare_statistik.klubbNamn, spelare_statistik.statMatcher, spelare_statistik.statMal, spelare_statistik.statAssist, spelare_statistik.statUtvisad, spelare_statistik.statPlusMinus, spelare_statistik.statRaddning, spelare_statistik.statInMal, spelare_statistik.statNollor, nhl_sasonger.arID, nhl_sasonger.arAr1, nhl_sasonger.arAr2 FROM nhl_sasonger INNER JOIN spelare_statistik ON nhl_sasonger.arID = spelare_statistik.statSasongID WHERE statTavling=0 ORDER BY arAr1 DESC, arAr2 DESC, statMal + statAssist DESC")
If objRS.EOF Then
Response.Write "saknas"
ELSE
arID = objRS("arID")
Do While arID=objRS("arID")
Jag vill alltså hämta ut all information så länge det e samma år (arID).tex så vill jag bara ha ut all information från året 2006 (om den ligger först i sorteringen)
Hur löser jag detta??
koden jag har nu ger följande felmeddelande:
Undantag inträffade.
<%
If objRS.EOF Then
Response.Write "saknas"
ELSE
arID = objRS("arID")
Do While arID=objRS("arID")
poang = objRS("statAssist")+objRS("statMal")
Set objRS1 = objConn.Execute("SELECT * FROM spelare WHERE playID="&objRS("playerID"))
Set objRS2 = objConn.Execute("SELECT * FROM klubbar WHERE lagID="&objRS("klubbID"))
%>
<tr>
<td>
<%
If objRS1.EOF Then
Response.Write "Okänd"
Else
Response.Write ""&objRS1("playFnamn")&" "&objRS1("playEnamn")&""
END IF
%>
</td>
<td>
<%
If objRS2.EOF Then
Response.Write ""&objRS("klubbNamn")&""
Else
Response.Write ""&objRS2("lagNamn")&""
END IF
%>
</td>
<td><%=objRS("statMatcher")%></td>
<td><%=objRS("statMal")%></td>
<td><%=objRS("statAssist")%></td>
<td><%=poang%></td>
<td><%=objRS("statPlusMinus")%></td>
</tr>
<%
objRS.MoveNext
Loop
END IF
objRS.Close
Set objRS = nothing
%>
ja, du. Jag vill bara hämta ut den senaste säsongen. Vilken det är beror på årtalet. Därför vill jag inte ange ett årID, för blir det ett nytt år så måste man ju gå in i filen och ändra?
Nu sorterar jag bara efter årtalen, sen sätter arID = första största året. Borde det inte gå att göra så, eller hur ska man lösa det?
Jag är nyfiken på hur RS, RS1 och RS2 hänger ihop, det verkar som att du inte har några nycklar melan tabellerna utan förlitar dig på att informationen ligger i rätt ordning. Har jag förstått din design rätt då? Det är en extremt skör databasdesign, och som voigtann1 säger: varför plockar du inte ut allt med endast en enkel sql-fråga? Hade du nycklar mellan tabellerna borde det gå utan problem :)
kanske ska säga det att jag Använder Access som databas än så länge.
jag använder enbart pk i databasen.
RS hämtar ut statistiken samt årtalen
RS1 hämtar ut namnet på spelaren, saknas namnet på spelaren så skrivs "okänd" ut
RS2 hämtar ut den klubb som spelaren tillhörde, finns inte klubben i databasen så ska texten skrivas ut i RS från kolumnen klubbnamn. (vilket är ganska vanligt)
Mjo, om du i tabellen spelare lägger till en kolumn "klubbID" som är FK till ID i tabellen klubbar så kan du slå ihop RS1 och RS2 till en fråga, och om du visar hur RS-frågan ser ut så kan man säkert fixa ihop det till en enda fråga. Access är ganska snabb och att loopa i asp är långsamt :)
jag har en kolumn klubbID i spelare, men den visar bara aktuell klubb. Så den kan jag inte anv i statistiken. För byter spelaren klubb så byter den ju även klubb i statistiken (vilket inte är så bra). Så jag har ett "relations objekt" där, med årID, spelarID, KlubbID finns. Men skulle jag slå samman allt till en sql fråga, då skulle ju bara de som har en klubb som finns i tabellen klubbar hämtas????
Eftersom alla klubbar inte kommer att finnas i databasen så har jag i "relations objektet" även en kolumn med KlubbNamn, där eventuellt namn ligger.
267 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2