Avatar billede mrdj Nybegynder
17. maj 2005 - 22:24 Der er 18 kommentarer og
1 løsning

Returnering af data fra DB

Jeg har en DB med en tabel i som jeg skal have returneret nogle resultater fra og db er fin nok men jeg kan simpelthen ikke få den til at returnere data, får asp fejl konstant. Tror jeg har stirret mig blind på at finde fejlen og håber derfor der er een herinde der kan hjælpe mig. Der er parameter på asp filen f.eks ?squadnumber=1 og tror det er i denne forbindelse det går galt. Det er muligt at downloade/emaile database samt kode.
Avatar billede hifi4all Nybegynder
17. maj 2005 - 22:28 #1
Hvis et noget af din kode gør det nemmere for folk at hjælpe! ;o)

Evt. også hvor fejlen melder sig på din asp side..
Avatar billede mrdj Nybegynder
17. maj 2005 - 22:30 #2
Kan jeg ikke emaile det til dig ?
Avatar billede mrdj Nybegynder
17. maj 2005 - 22:32 #3
det kan downloades her: www.bowlingonline.dk/asp.zip
email tilbage til: reg@kimkt.dk
Avatar billede mrdj Nybegynder
17. maj 2005 - 22:37 #4
Avatar billede thesurfer Nybegynder
17. maj 2005 - 23:53 #5
Det er sikkert fordi, Request.Querystring er tekst, og du vil sammenligne med et tal, som f.eks ID fra databasen..

Du skal derfor bruge: CInt(Request.Querystring("squadnumber"))

f.eks.:

nummer = CInt(Request.Querystring("squadnumber"))

eller

"... where id = " & CInt(Request.Querystring("squadnumber"))


Egentligt er det altid bedst, at checke værdien INDEN du arbejder med den..

dvs:
nummer = CInt(Request.Querystring("squadnumber"))
if IsNumeric(nummer) = false or nummer = "" then
  response.write "Fejl i squadnummer!!"
else
  sql = "... where id = " & nummer
...
end if

osv..
Avatar billede thesurfer Nybegynder
17. maj 2005 - 23:57 #6
Jeg har lige downloadet projektet.. der er faktisk flere fejl..

where squadnumber = '&squadnumber&' order

Hvis det skal være rigtigt, med tal:

"... where squadnumber = " & squadnumber & " order ..."

Hvis det er med tekst:

"... where squadnumber = '" & squadnumber & "' order ..."


Forskel: Ved tekst, skal der '-tegnet udenom værdien.. det skal der ikke ved tal

Når jeg skriver "tekst" eller "tal", mener jeg typen af værdien eller typen af feltet i databasen..
Avatar billede hifi4all Nybegynder
18. maj 2005 - 00:59 #7
Ud over, det foroven skrevet, så du har brugt et reserveret ord i din SQL sætning: "Order by POSITION" - position kan ikke bruges.!!!

Du bør omdøbe positionfeltet til noget andet!

Se også SQL sætningen med rettelser! :O)

squad.asp ser sådan ud, når "Order by" er væk: http://www.zonedesign.dk/asp/squad.asp?squadnumber=1 (data fjernes om en uge!)


Kode:
<!--#include file="database_con.asp"-->

<html>
<body>

<link rel="stylesheet" type="text/css" href="style/main.css">

<p style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align="left"><b>
<font color="#000080" size="6">Brunswick Aalborg International 2005</font></b></p>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align=left>&nbsp;</P>
<div align="left">
    <table border="0" id="table1" style="border-collapse: collapse" align="left"

width="429">
        <tr>
            <td>
            <p align="left">
            <img border="0" src="Logo/bruns.jpg" width="200" height="26"

align="left">
            </td>
            <td width="10">
            <p align="left">&nbsp;</td>
            <td width="208">
            <img border="0" src="Logo/vbs.jpg" width="200" height="22"></td>
        </tr>
    </table>
</div>
<p align="left">&nbsp;</p>
<hr><br>

<%
' Start fejl i tilfælde af forkert URL i browser, ved manglende argument: ?squadnumber=1 f.eks
if Request.Querystring = "" then
  Response.Write ("Missing argument: ?squadnumber=1 example")
else
' slut fejl

dim squadnr
squadnr = request.querystring("squadnumber")

' SQL forespørgsel
strSQL = "SELECT* FROM Websquadstandings where squadnumber = " &(squadnr)& ""
' Her udføres forespørgsel på data (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

if rs.eof = 0 then
  ' Her skrives tournament overskriften taget fra den ovenstående valgte tabel indeholdende

feltet med data i
'  Response.Write "<h2>" & rs("h1") & "</h2>"
Response.Write "<title>" & "Results for Squad " & rs("Squadnumber") & "</title>"
' Her returneres tidspunktet for valgt squad
Response.Write "<h2>" & rs("h2") & "</h2><hr>"
' Her returneres overskrift + nummer på valgt squad
Response.Write "<h2>List of results for Squad " & rs("squadnumber") & "</h2>"
' Recordset gennemløbes med en løkke
Response.Write("<table>")
Response.Write("<tr><td><b>Pos</b></td><td><b>Name</b></td><td><b>Club</b></td><td><b>Cou</b></t

d><td><b>G1</b></td><td><b>G2</b></td><td><b>G3</b></td><td><b>G4</b></td><td><b>G5</b></td><td>

<b>G6</b></td><td><b>GTotal</b></td><td><b>HTotal</b></td>")
Do

  ' Her udskrives de valgte felter / værdier
  Response.Write "<TR onMouseOver=this.bgColor='lightblue'

onMouseOut=this.bgColor='white'><td>&nbsp" &rs("Position") & "&nbsp&nbsp&nbsp&nbsp</td><td> " &

rs("fullname") & "&nbsp&nbsp&nbsp</td><td> " & rs("club") & "&nbsp&nbsp&nbsp </td><td> " &

rs("countrycode") & "&nbsp&nbsp&nbsp </td><td  align=right> " & rs("g1") & "&nbsp&nbsp&nbsp

</td><td  align=right> " & rs("G2") & "&nbsp&nbsp&nbsp </td><td  align=right> " & rs("G3") &

"&nbsp&nbsp&nbsp </td><td  align=right> " & rs("G4") & "&nbsp&nbsp&nbsp </td><td align=right> "

& rs("G5") & "&nbsp&nbsp&nbsp </td><td align=right> " & rs("G6") & "&nbsp&nbsp&nbsp </td><td

align=right> " & rs("Gtotal") & "&nbsp&nbsp&nbsp </td><td align=right><b> " & rs("Htotal") & "

</b></td></tr>"

  ' Gå til næste Record i recordset
  rs.MoveNext

' Fortsæt indtil hele recordset er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF
Response.Write("</table>")

else
response.write ("<br><div>Not played yet</div></br>")
end if
end if

' Databaseforbindelse lukkes
Conn.Close
Set Conn = Nothing

%>

</html>
</body>
Avatar billede busschou Praktikant
18. maj 2005 - 07:30 #8
hifi4all >> Der er intet absoulut intet i vejen for at bruge reserverede ord i access (har ikke hentet det, men gætter på det er access) når blot man sætter [] omkring det pågældende ord
Avatar billede mrdj Nybegynder
18. maj 2005 - 08:47 #9
Det er ikke muligt for dig at ligge din SQUAD.ASP ud til download som f.eks zip fil ? Jeg har prøvet at kopiere dit indlæg med rettelser men får stadig fejl selvom jeg har kigget igennem jeg ved ikke hvormange gange.
Avatar billede hifi4all Nybegynder
18. maj 2005 - 09:08 #10
busschou >> Du har ret - det var en misser fra mig.(ja, det er access)

SQL ser såleds ud nu:

' SQL forespørgsel
strSQL = "SELECT* FROM Websquadstandings WHERE squadnumber = " &(squadnr)& " ORDER BY [position]

DESC"
' Her udføres forespørgsel på data (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

http://www.zonedesign.dk/asp/squad.asp?squadnumber=1 skulle så gerne sortere efter ovenstående :O)
Avatar billede mrdj Nybegynder
18. maj 2005 - 09:18 #11
Jeg kan ikke rigtig få det til at fungere, får "intern server fejl" når jeg bruger den ovenstående kode
Avatar billede hifi4all Nybegynder
18. maj 2005 - 09:31 #12
Check din mail! :O)
Avatar billede mrdj Nybegynder
18. maj 2005 - 09:41 #13
Nu ser det ud til at virke og tak for rettelsen i database forbindelsen... Altid godt med nogle forbedringer....
Avatar billede mrdj Nybegynder
18. maj 2005 - 09:47 #14
Lige een ting mere til samme projekt er det muligt i ASP koden at få den til at regne gennemsnittet ud på total divideret med 6 ??? og hvordan gøres dette ??? og så selvfølgelig skrive resultatet ud for hvor spiller
Avatar billede thesurfer Nybegynder
18. maj 2005 - 10:38 #15
Response.Write CInt(rs("Gtotal") / 6) ' uden kommatal
Response.Write CDBl(rs("Gtotal") / 6) ' med kommatal

Er er yderligere problemer?
Avatar billede mrdj Nybegynder
18. maj 2005 - 23:15 #16
Det virker fint.. Lige et sidste problem... Er der nogle der kan finde fejlen i følgende asp kode - får bare Internal Server Error.. kan simpelthen ikke finde fejlen

<!--#include file="database_con.asp"-->

<html>
<body>

<link rel="stylesheet" type="text/css" href="style/main.css">

<p style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align="left"><b>
<font color="#000080" size="6">Brunswick Aalborg International 2005</font></b></p>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align=left>&nbsp;</P>
<div align="left">
    <table border="0" id="table1" style="border-collapse: collapse" align="left" width="429">
        <tr>
            <td>
            <p align="left">
            <img border="0" src="Logo/bruns.jpg" width="200" height="26" align="left">
            </td>
            <td width="10">
            <p align="left">&nbsp;</td>
            <td width="208">
            <img border="0" src="Logo/vbs.jpg" width="200" height="22"></td>
        </tr>
    </table>
</div>
<p align="left">&nbsp;</p>
<hr><br>

<%
' SQL forespørgsel
strSQL = "SELECT * FROM Webqualstanding"
' Her udføres forespørgsel på data (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

if rs.eof = 0 then
' Her skrives tournament overskriften taget fra den ovenstående valgte tabel indeholdende feltet med data i
'  Response.Write "<h2>" & rs("h1") & "</h2>"
' Response.Write "<title>" & "Results for Squad " & rs("Squadnumber") & "</title>"
' Her returneres tidspunktet for valgt squad
' Response.Write "<h2>" & rs("h2") & " - after game " & rs("Gamenumber") & "</h2><hr>"
' Her returneres overskrift + nummer på valgt squad
' Response.Write "<h2>List of results for Squad " & rs("squadnumber") & "</h2>"
' Recordset gennemløbes med en løkke
Response.Write("<table>")
Response.Write("<tr><td><b>Pos</b></td><td><b>Name</b></td><td><b>Club</b></td><td><b>Cou</b></td><td><b>G1</b></td><td><b>G2</b></td><td><b>G3</b></td><td><b>G4</b></td><td><b>G5</b></td><td><b>G6</b></td><td><b>Game</b></td><td><b>Hcp</b></td><td><b>Total</b></td><td><b>&nbspAve</b></td>")
Do

  ' Her udskrives de valgte felter / værdier
  Response.Write "<TR onMouseOver=this.bgColor='lightblue' onMouseOut=this.bgColor='white'><td>&nbsp" &rs("Position") & "&nbsp&nbsp&nbsp&nbsp</td><td> " & " <a href='playerview.asp?number="& rs("Number") & "'>" &rs("Fullname") & "</td><td> " & rs("club") & "&nbsp&nbsp&nbsp </td><td> " & rs("countrycode") & "&nbsp&nbsp&nbsp </td><td  align=right> " & rs("g1") & "&nbsp&nbsp&nbsp </td><td  align=right> " & rs("G2") & "&nbsp&nbsp&nbsp </td><td  align=right> " & rs("G3") & "&nbsp&nbsp&nbsp </td><td  align=right> " & rs("G4") & "&nbsp&nbsp&nbsp </td><td align=right> " & rs("G5") & "&nbsp&nbsp&nbsp </td><td align=right> " & rs("G6") & "&nbsp&nbsp&nbsp </td><td align=right> " & rs("Gtotal") & "&nbsp&nbsp&nbsp </td><td align=center> " & rs("Htotal") & " </td><td align=right><b> " & rs("total") & " </b></td><td> &nbsp " & CInt(rs("Gtotal") / 6) & " </td></tr>"


  ' Gå til næste Record i recordset
  rs.MoveNext

' Fortsæt indtil hele recordset er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF
Response.Write("</table>")

else
response.write ("<br><div>Not played yet</div></br>")
end if
end if

' Databaseforbindelse lukkes
Conn.Close
Set Conn = Nothing

%>

</html>
</body>
Avatar billede thesurfer Nybegynder
20. maj 2005 - 12:37 #17
Ser ud til at virke fint.. http://www.bowlingonline.dk/squad.asp?squadnumber=1 .. ?
Avatar billede mrdj Nybegynder
22. maj 2005 - 16:08 #18
Så ser det hele ud til at virke. Lukker spørgsmålet ligeså snart alle der ønsker point har lavet et svar
Avatar billede thesurfer Nybegynder
22. maj 2005 - 17:20 #19
Ingen points, tak.
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