Avatar billede neoo Nybegynder
21. marts 2004 - 20:30 Der er 74 kommentarer og
1 løsning

asp og mysql qury

hej til alle.



hjælpppppppppppppppppppppppppp!


jeg har tidligere lavet en applikation i asp med access database. i dennne application har der været en masse (statistik) sider som læste fra nogle forspørelser som fandtes i min access database.
Men da jeg nu har fået besked på at databasen skal ændres til MySql har jeg fået store problemmer.

En af de store problemmer er at jeg ikke ved hvordan jeg skal lave disse statistiksider i asp, da de tidligere læste som en tabel fra access (forspørgelserne i den).


koden for en af acces forspørelser ser sådan ud :


SELECT DISTINCTROW rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS [Sum Of booking_total_pris], Sum(booking.booking_koebs_pris) AS [Sum Of booking_koebs_pris], Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr
FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id
WHERE (((rejse.rejse_type)="afrejse"))
GROUP BY rejse.rejse_airlines, rejse.rejse_til;



Er der nogen der har en ide til hvordan det ovenævnte kan løses ?

skal jeg smide det overnænte sql kode på asp siden direkte ? eller skal kan man smide den i en tekstfil og læse fra den ved angive den i asp siden ?

eller kan man lave denne som forsørelse i Mysql og have resultatet gemt ?

Og hvordan gøre man det ?
Avatar billede neoo Nybegynder
21. marts 2004 - 20:32 #1
Jeg har fået vide at man i Mysql ikke kan lave førspørgelser ligesom access hvor den i access gemmer det som en qury tabel!
passer det ?
Avatar billede eagleeye Praktikant
21. marts 2004 - 20:40 #2
Det korrekt at mySQL ikke har forspørgelser som access har,
men du kan tage SQL sætningerne fra forspørgelerne og ligge ind i ASP siden eks:

SQL = "SELECT DISTINCTROW rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS [Sum Of booking_total_pris], Sum(booking.booking_koebs_pris) AS [Sum Of booking_koebs_pris], Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr
FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id
WHERE (((rejse.rejse_type)="afrejse"))
GROUP BY rejse.rejse_airlines, rejse.rejse_til;"

og så bruge en connetion til at execute den som med access:

Set rs = Conn.Execute(SQL)
Avatar billede neoo Nybegynder
21. marts 2004 - 20:53 #3
jeg ved ikke rigtigt hvor jeg skal placere dette henne i min asp kode.







min koder ser sådan ud:


<%
displayRecs = 20
recRange = 10
%>

<%
' Get table name
tablename = "[bookingoversigt]"
dbwhere = ""
a_search = ""
b_search = ""
%>



<%
' Get search criteria for basic search
pSearch = Request.QueryString("psearch")
If pSearch <> "" Then
    pSearch = replace(pSearch,"'","''")
    pSearch = replace(pSearch,"[","[[]")
    b_search = b_search & "[id] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[navn] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[Deltager] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[afrejse] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[ankomst] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[flightnr] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[Billetnummer] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[Afrejsedato] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[Telefon] LIKE '%" & pSearch & "%' OR "





End If
If len(b_search) > 4 Then
    b_search = mid(b_search,1,len(b_search)-4)
    b_search = "(" & b_search & ")"
End If
%>



<%
'Build search criteria
If a_search <> "" Then
    dbwhere = dbwhere &  a_search 'advance search
ElseIf b_search <> "" Then
    dbwhere = dbwhere & b_search 'basic search
End If

'Save search criteria
If dbwhere <> "" Then
    Session("tablename") = tablename
    Session("dbwhere") = dbwhere
    'reset start record counter
    startRec = 1
    Session("OpretBooking_REC") = startRec
Else
    If tablename = Session("tablename") Then
        dbwhere = Session("dbwhere")
    Else
        'reset search criteria
        dbwhere = ""
        Session("dbwhere") = dbwhere
    End If
End If

'Get clear search cmd
If Request.QueryString("cmd").Count > 0 then
    cmd=Request.QueryString("cmd")
    If ucase(cmd) = "RESET" Then
        'reset search criteria
        dbwhere = ""
        Session("dbwhere") = dbwhere
    End If
End If

%>


<%
' Load Default Order
DefaultOrder = ""
DefaultOrderType = ""

' Check for an Order parameter
OrderBy = ""
If Request.QueryString("order").Count > 0 Then
    OrderBy = Request.QueryString("order")
    ' Check if an ASC/DESC toggle is required
    If Session("OpretBooking_OB") = OrderBy Then
        If Session("OpretBooking_OT") = "ASC" Then
            Session("OpretBooking_OT") = "DESC"
        Else
            Session("OpretBooking_OT") = "ASC"
        End if
    Else
        Session("OpretBooking_OT") = "ASC"
    End If
    Session("OpretBooking_OB") = OrderBy
    Session("OpretBooking_REC") = 1
Else
    OrderBy = Session("OpretBooking_OB")
    if OrderBy = "" then
        OrderBy = DefaultOrder
        Session("OpretBooking_OB") = OrderBy
        Session("OpretBooking_OT") = DefaultOrderType
    End If
End If

' Open Connection to the database
set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str

' Build Query
strsql = "select * from [bookingoversigt]"

If dbwhere <> "" Then
    strsql = strsql & " WHERE " & dbwhere
End If

if OrderBy <> "" then
        strsql = strsql & " ORDER BY [" & OrderBy & "] " & Session("OpretBooking_OT")
end if   

'response.write strsql

set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 2
totalRecs = rs.RecordCount

' Check for a START or PAGENO parameter
If Request.QueryString("start").Count > 0 Then
    startRec = Request.QueryString("start")
    Session("OpretBooking_REC") = startRec
ElseIf Request.QueryString("pageno").Count > 0 Then
    pageno = Request.QueryString("pageno")
    if isnumeric(pageno) then
        startRec = (pageno-1)*displayRecs+1
        if startRec <= 0 then
            startRec = 1
        elseif startRec >= ((totalRecs-1)\displayRecs)*displayRecs+1 then
            startRec = ((totalRecs-1)\displayRecs)*displayRecs+1
        end if
        Session("OpretBooking_REC") = startRec
    Else
        startRec = Session("OpretBooking_REC")
        if not isnumeric(startRec) or startRec = "" then
            'reset start record counter
            startRec = 1
            Session("OpretBooking_REC") = startRec
        End If
    End If
Else
    startRec = Session("OpretBooking_REC")
    if not isnumeric(startRec) or startRec = "" then
        'reset start record counter
        startRec = 1
        Session("OpretBooking_REC") = startRec
    End If
End If
%>
Avatar billede neoo Nybegynder
21. marts 2004 - 20:53 #4
min forspørelse i access hedder bookingoversigt
Avatar billede eagleeye Praktikant
21. marts 2004 - 20:59 #5
Det skal være disse linjer:


' Build Query
strsql = "select * from [bookingoversigt]"

If dbwhere <> "" Then
    strsql = strsql & " WHERE " & dbwhere
End If

if OrderBy <> "" then
        strsql = strsql & " ORDER BY [" & OrderBy & "] " & Session("OpretBooking_OT")
end if 


Hvor det fra forspørgelsen/qyeryen skal ind i stedet for denne :
strsql = "select * from [bookingoversigt]"
og så skal det med order by også bygges ind eksvis sådan her:


' Build Query
SQL = "SELECT DISTINCTROW rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS [Sum Of booking_total_pris], Sum(booking.booking_koebs_pris) AS [Sum Of booking_koebs_pris], Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id WHERE (((rejse.rejse_type)='afrejse')) GROUP BY rejse.rejse_airlines, rejse.rejse_til;"

strsql = "select * from (" & SQL & ")"

If dbwhere <> "" Then
    strsql = strsql & " WHERE " & dbwhere
End If

if OrderBy <> "" then
        strsql = strsql & " ORDER BY " & OrderBy & " " & Session("OpretBooking_OT")
end if
Avatar billede neoo Nybegynder
21. marts 2004 - 21:02 #6
jeg prøver lige
Avatar billede eagleeye Praktikant
21. marts 2004 - 21:02 #7
det ikke sikkert mySQL vil "æde" [] den bruger vist `


Det kan måske være en fordel at starte med kun at få denne til at virke:

SQL = "SELECT DISTINCTROW rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS `Sum Of booking_total_pris`, Sum(booking.booking_koebs_pris) AS `Sum Of booking_koebs_pris`, Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id WHERE (((rejse.rejse_type)='afrejse')) GROUP BY rejse.rejse_airlines, rejse.rejse_til;"

og så bygge det andet på bagefter igen.
Avatar billede neoo Nybegynder
21. marts 2004 - 21:11 #8
den melder HTTP 500 - Intern serverfejl (på den side du sagde at jeg skulle ændre)

Hvad har jeg lavet forkert ?  :(




jeg har opretet en fil hvor min connection er i (db.asp)
når jeg kørere filen så får jeg ingen fejl.




min db.asp ser sådan ud:

<%
set xDb_Conn_Str = Server.CreateObject("ADODB.Connection")
xDb_Conn_Str.Open " DRIVER=MySQL; SERVER=localhost; UID=root; PWD=root; DATABASE=Dataware;"

%>
Avatar billede eagleeye Praktikant
21. marts 2004 - 21:12 #9
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 neoo Nybegynder
21. marts 2004 - 21:18 #10
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Datakildenavnet blev ikke fundet, og der er ikke angivet en standarddriver.

/bookingoversigt.asp, line 129


og linje 129 =  conn.Open xDb_Conn_Str


et par linjer op og ned er den sådan:

        Session("OpretBooking_OT") = DefaultOrderType
    End If
End If

' Open Connection to the database
set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str

' Build Query
SQL = "SELECT DISTINCTROW......
Avatar billede neoo Nybegynder
21. marts 2004 - 21:19 #11
men når jeg kørere min db.asp så får jeg ikke nogen fejl ! :(
Avatar billede eagleeye Praktikant
21. marts 2004 - 21:20 #12
hmm har du installeret mySQL ODBC driveren på den maskine som er ASP-server?
Avatar billede neoo Nybegynder
21. marts 2004 - 21:22 #13
jo det skulle gerne være der
Avatar billede neoo Nybegynder
21. marts 2004 - 21:23 #14
men jeg har ikke sat noget MySQL ODBC DSN op for jeg bruger den ikke
Avatar billede neoo Nybegynder
21. marts 2004 - 21:24 #15
jeg ikke sat  ODBC DSNs , for denne databse
Avatar billede eagleeye Praktikant
21. marts 2004 - 21:25 #16
Den du variable du kalder:  xDb_Conn_Str
Er ikke en streng, men en Connection til databasen som det fremgår af det du har skrevet 21/03-2004 21:11:10
Så prøv at bruge xDb_Conn_Str som din connection og ikke Conn, eller lav xDb_Conn_Str om til en streng
Avatar billede neoo Nybegynder
21. marts 2004 - 21:26 #17
på mit webhotel er der noget der hedder : Create/Manage MySQL databases
og der har jeg oprettet databasen-
Avatar billede neoo Nybegynder
21. marts 2004 - 21:29 #18
så får jeg denne fejl.

Server object error 'ASP 0177 : 800401f3'

Server.CreateObject Failed
Avatar billede eagleeye Praktikant
21. marts 2004 - 21:32 #19
Hvad er ændret?

Ok, ud fra koden 21/03-2004 20:53:20 skal du nok rette db.asp til:

<%
xDb_Conn_Str =  " DRIVER=MySQL; SERVER=localhost; UID=root; PWD=root; DATABASE=Dataware;"

%>

og beholder dette:

' Open Connection to the database
set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str
Avatar billede neoo Nybegynder
21. marts 2004 - 21:35 #20
jeg rette det lige
Avatar billede neoo Nybegynder
21. marts 2004 - 21:39 #21
så melder den :
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

ODBC-driver understøtter ikke de ønskede egenskaber.
bookingoversigt.asp, line 147


line 147 =  rs.Open strsql, conn, 1, 2


et par linjer op og ned er:


set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 2
totalRecs = rs.RecordCount

' Check for a START or PAGENO parameter
If Request.QueryString("start").Count > 0 Then


jeg trore den er ved at være der
Avatar billede eagleeye Praktikant
21. marts 2004 - 21:41 #22
Ja det et skridt på vejen frem :)

hedder variablen med SQL sætningen,  strsql  eller SQL ?
Avatar billede neoo Nybegynder
21. marts 2004 - 21:42 #23
den hedder sql
Avatar billede eagleeye Praktikant
21. marts 2004 - 21:44 #24
ok, så prøv at rette linjen:

rs.Open strsql, conn, 1, 2

Til:

rs.Open sql, conn, 1, 2
Avatar billede neoo Nybegynder
21. marts 2004 - 21:48 #25
Microsoft VBScript compilation error '800a0409'

Unterminated string constant

/bookingoversigt.asp, line 132

sql = "SELECT DISTINCT rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS `Sum Of booking_total_pris`, Sum(booking.booking_koebs_pris) AS `Sum Of booking_koebs_pris`, Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr
Avatar billede neoo Nybegynder
21. marts 2004 - 21:48 #26
men ind på aspen ser den sådan ud :


' Build Query
sql = "SELECT DISTINCT rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS `Sum Of booking_total_pris`, Sum(booking.booking_koebs_pris) AS `Sum Of booking_koebs_pris`, Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr
FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id
WHERE (((rejse.rejse_type)='afrejse'))
GROUP BY rejse.rejse_airlines, rejse.rejse_til;"
Avatar billede neoo Nybegynder
21. marts 2004 - 21:49 #27
jeg har taget det overnævnte og prøvet den direkte på phpadmin som er database administrations del hos min webhoster og der melder den sql ok (altså direkte på databsen og ikke igennem asp )
Avatar billede eagleeye Praktikant
21. marts 2004 - 21:52 #28
Det skal være en lang linje uden linje sift, evt del den op på flere linjer sådan her:

' Build Query
sql = "SELECT DISTINCT rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS `Sum Of booking_total_pris`, Sum(booking.booking_koebs_pris) AS `Sum Of booking_koebs_pris`, Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr "
sql = sql & " FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id "
sql = sql & " WHERE (((rejse.rejse_type)='afrejse')) "
sql = sql & " GROUP BY rejse.rejse_airlines, rejse.rejse_til;"
Avatar billede neoo Nybegynder
21. marts 2004 - 21:58 #29
det ser ud til at det har løst noget, men det er bare det at i acces da havde jeg derfineret det som forkskellige felter  : men nu er det anderledes og derfor melder den fejl her  i denne stum kode ?

<%

booking_id = rs("booking_id")
x_Kunde_navn = rs("Kunde_navn")
x_afrejse_fra = rs("afrejse_fra")
x_booking_total_pris = rs("booking_total_pris")
x_booking_rest_beoloeb = rs("booking_rest_beoloeb")
x_booking_betallings_type = rs("booking_betallings_type")
x_afrejse_dato= rs ("afrejse_dato")

%>
Avatar billede neoo Nybegynder
21. marts 2004 - 21:59 #30
den melder :

ADODB.Recordset error '800a0cc1'
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:04 #31
Ja det så fordi den bruger et kolonne navn i rs("xxxx") som ikke indgår i SQL sætninge select del.
Avatar billede neoo Nybegynder
21. marts 2004 - 22:04 #32
skal jeg så bare slette det ?
Avatar billede neoo Nybegynder
21. marts 2004 - 22:05 #33
for længere nede udskriver jeg dem i forskellige felter igennem : <% response.write x_booking_id %>
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:06 #34
Ja eller skal det med SELECT delen?
Avatar billede neoo Nybegynder
21. marts 2004 - 22:07 #35
hvordan  ?
Avatar billede neoo Nybegynder
21. marts 2004 - 22:07 #36
jeg er lidt lost mht til hvordan jeg skal sætte det her op og kørere og er nået til kodens sidste del
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:08 #37
hvis du skal bruge x_booking_id senere skal det jo med ud, så prøv:


' Build Query
sql = "SELECT DISTINCT rejse.booking_id, rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS `Sum Of booking_total_pris`, Sum(booking.booking_koebs_pris) AS `Sum Of booking_koebs_pris`, Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr "
sql = sql & " FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id "
sql = sql & " WHERE (((rejse.rejse_type)='afrejse')) "
sql = sql & " GROUP BY rejse.rejse_airlines, rejse.rejse_til;"
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:09 #38
men i det hele taget passer disse :

booking_id = rs("booking_id")
x_Kunde_navn = rs("Kunde_navn")
x_afrejse_fra = rs("afrejse_fra")
x_booking_total_pris = rs("booking_total_pris")
x_booking_rest_beoloeb = rs("booking_rest_beoloeb")
x_booking_betallings_type = rs("booking_betallings_type")
x_afrejse_dato= rs ("afrejse_dato")

meget dårligt med den SQL sætning??
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:11 #39
der er faktsik slet ikke nogle af de listede kolonnenavne som er med select delen
Avatar billede neoo Nybegynder
21. marts 2004 - 22:12 #40
nej jeg skal ikke bruge x_booking_id, men spørgesmålet er hvordan jeg kan får de ting ind i en response.write

rejse_airlines    rejse_til    sum_of_bookingToltalpris    Sum Of booking_koebs_pris

og      SumOfudskrifts_nr

det er de ting jeg godt kunne tænke mig at får udskrevet i nogle felter bare ved at skrive resonse.write rejse_airlines
Avatar billede neoo Nybegynder
21. marts 2004 - 22:14 #41
det her var en eks.
jeg skal ikke bruge dem

booking_id = rs("booking_id")
x_Kunde_navn = rs("Kunde_navn")
x_afrejse_fra = rs("afrejse_fra")
x_booking_total_pris = rs("booking_total_pris")
x_booking_rest_beoloeb = rs("booking_rest_beoloeb")
x_booking_betallings_type = rs("booking_betallings_type")
x_afrejse_dato= rs ("afrejse_dato")



men skal bruge _:
21/03-2004 22:12:15
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:14 #42
ARh ok :)
så glemt min kommentar 21/03-2004 22:08:02.

Så skal du gøre sådan her:

Du kan skift de kolonne navne ud med den du skal bruge så.

Response.Write rs("rejse_airlines")
Response.Write rs("Sum Of booking_koebs_pris")
Avatar billede neoo Nybegynder
21. marts 2004 - 22:19 #43
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.
Avatar billede neoo Nybegynder
21. marts 2004 - 22:20 #44
det fordi den søger efter en record torre jeg :(
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:22 #45
ok, og der er data i databasen?
Avatar billede neoo Nybegynder
21. marts 2004 - 22:23 #46
jo men det er i forkellige tabeller ligesom det står i vores select sætning
Avatar billede neoo Nybegynder
21. marts 2004 - 22:24 #47
det er også fordi den der select sætning beregner også nogle ting også bliver det svært
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:25 #48
Ja, og de har opfyldt dette:  rejse.rejse_type='afrejse'
Avatar billede neoo Nybegynder
21. marts 2004 - 22:27 #49
queryen melder ikke nogen fejl men den visser hellere ikke noget
Avatar billede neoo Nybegynder
21. marts 2004 - 22:30 #50
/bookingoversigt.asp, line 333
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:31 #51
/bookingoversigt.asp, line 333 ??
hvad står i den linje?
Avatar billede eagleeye Praktikant
21. marts 2004 - 22:32 #52
Forøvrigt bruger du variablen totalRecs til noget??

totalRecs = rs.RecordCount
Avatar billede neoo Nybegynder
21. marts 2004 - 23:15 #53
Linje 333 = <a href="<% If not isnull(rs("rejse_airlines")) Then response.write "opretbookinglook.asp?key=" & Server.URLEncode(rs("booking_id")) Else response.write "java script:alert('Invalid Record! Key is null.');" %>">

Og ja, jeg bruger totalRecs til Paging af siden...
Avatar billede neoo Nybegynder
21. marts 2004 - 23:16 #54
Hele fejlen i linje 333 er:
ADODB.Recordset error '800a0cc1'

Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.

/bookingoversigt.asp, line 329
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:17 #55
Hvis det er SQL som gør der ikke kommer data ud så prøv at lave den simple som dette, bare for at se der kan komme noget ud, så kan det andet bygges på igen.

sql = "SELECT DISTINCT rejse.rejse_airlines, rejse.rejse_til FROM rejse"
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:17 #56
glem min sidste kommentar
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:18 #57
ok, der bruges kolonne booking_id:  rs("booking_id")
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:19 #58
Skal den bruges??  For så skal SQL afligevel rettes til at havde booking_nr med ud:

' Build Query
sql = "SELECT DISTINCT rejse.booking_id, rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS `Sum Of booking_total_pris`, Sum(booking.booking_koebs_pris) AS `Sum Of booking_koebs_pris`, Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr "
sql = sql & " FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id "
sql = sql & " WHERE (((rejse.rejse_type)='afrejse')) "
sql = sql & " GROUP BY rejse.booking_id, rejse.rejse_airlines, rejse.rejse_til;"
Avatar billede neoo Nybegynder
21. marts 2004 - 23:24 #59
Microsoft VBScript runtime error '800a000d'

Type mismatch: 'URLEncode'

/bookingoversigt.asp, line 333

Samme linje, altså = <a href="<% If not isnull(rs("rejse_airlines")) Then response.write "opretbookinglook.asp?key=" & Server.URLEncode(rs("booking_id")) Else response.write "java script:alert('Invalid Record! Key is null.');" %>">
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:26 #60
hmmm?? hvordan kan der være type mismatch?? det vel bare et tal booking_id??

Prøv evt sådan her:

Samme linje, altså = <a href="<% If not isnull(rs("rejse_airlines")) Then response.write "opretbookinglook.asp?key=" & Server.URLEncode(""&rs("booking_id")) Else response.write "java script:alert('Invalid Record! Key is null.');" %>">
Avatar billede neoo Nybegynder
21. marts 2004 - 23:28 #61
Ja, jeg forstår det heller ikke... I databasen er der 2 og 6 som booking_id

Efter jeg har sat den linje ovenfor ind, melder den denne fejl:
error '80020009'
Exception occurred.

/bookingoversigt.asp, line 333
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:31 #62
hvad så uden urlencode:

<a href="<% If not isnull(rs("rejse_airlines")) Then response.write "opretbookinglook.asp?key=" & rs("booking_id") Else response.write "java script:alert('Invalid Record! Key is null.');" %>">
Avatar billede neoo Nybegynder
21. marts 2004 - 23:33 #63
samme fejl...
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:39 #64
Har linjen altid virket?
umiddelbart kan man nemligge havde else i samme linje som then?

<a href="
<% If not isnull(rs("rejse_airlines")) Then
  response.write "opretbookinglook.asp?key=" & rs("booking_id")
Else
  response.write "java script:alert('Invalid Record! Key is null.');"
End If %>">
Avatar billede neoo Nybegynder
21. marts 2004 - 23:43 #65
Ja, linjen virkede før...

hvad mener du? (umiddelbart kan man nemligge havde else i samme linje som then?)
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:45 #66
som en lang linje: if xxx then yyy else zzz
Det syntes jeg bare ikke altid virker.
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:45 #67
men så det nok noget andet :)
Avatar billede neoo Nybegynder
21. marts 2004 - 23:51 #68
Vil du lige se hele siden? Det kan være du ser noget jeg ikke ser...
Avatar billede eagleeye Praktikant
21. marts 2004 - 23:57 #69
Ja men jeg tror umiddelbart ikke det er noget et andet sted.

Prøv at rette SQL til:

sql = "SELECT rejse.booking_id, rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS `Sum Of booking_total_pris`, Sum(booking.booking_koebs_pris) AS `Sum Of booking_koebs_pris`, Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr "
sql = sql & " FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id "
sql = sql & " WHERE (((rejse.rejse_type)='afrejse')) "
sql = sql & " GROUP BY rejse.booking_id, rejse.rejse_airlines, rejse.rejse_til;"
Avatar billede neoo Nybegynder
22. marts 2004 - 00:10 #70
Det virkede heller ikke... Nå, men her er hele siden:

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

<%
Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.CacheControl = "no-cache"
%>

<%
displayRecs = 20
recRange = 10
%>

<%
' Get table name
tablename = "[bookingoversigt]"
dbwhere = ""
a_search = ""
b_search = ""
%>

<%
' Get search criteria for basic search
pSearch = Request.QueryString("psearch")
If pSearch <> "" Then
    pSearch = replace(pSearch,"'","''")
    pSearch = replace(pSearch,"[","[[]")
    b_search = b_search & "[id] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[navn] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[Deltager] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[afrejse] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[ankomst] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[flightnr] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[Billetnummer] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[Afrejsedato] LIKE '%" & pSearch & "%' OR "
    b_search = b_search & "[Telefon] LIKE '%" & pSearch & "%' OR "

End If
If len(b_search) > 4 Then
    b_search = mid(b_search,1,len(b_search)-4)
    b_search = "(" & b_search & ")"
End If
%>

<%
'Build search criteria
If a_search <> "" Then
    dbwhere = dbwhere &  a_search 'advance search
ElseIf b_search <> "" Then
    dbwhere = dbwhere & b_search 'basic search
End If

'Save search criteria
If dbwhere <> "" Then
    Session("tablename") = tablename
    Session("dbwhere") = dbwhere
    'reset start record counter
    startRec = 1
    Session("OpretBooking_REC") = startRec
Else
    If tablename = Session("tablename") Then
        dbwhere = Session("dbwhere")
    Else
        'reset search criteria
        dbwhere = ""
        Session("dbwhere") = dbwhere
    End If
End If

'Get clear search cmd
If Request.QueryString("cmd").Count > 0 then
    cmd=Request.QueryString("cmd")
    If ucase(cmd) = "RESET" Then
        'reset search criteria
        dbwhere = ""
        Session("dbwhere") = dbwhere
    End If
End If

%>

<%
' Load Default Order
DefaultOrder = ""
DefaultOrderType = ""

' Check for an Order parameter
OrderBy = ""
If Request.QueryString("order").Count > 0 Then
    OrderBy = Request.QueryString("order")
    ' Check if an ASC/DESC toggle is required
    If Session("OpretBooking_OB") = OrderBy Then
        If Session("OpretBooking_OT") = "ASC" Then
            Session("OpretBooking_OT") = "DESC"
        Else
            Session("OpretBooking_OT") = "ASC"
        End if
    Else
        Session("OpretBooking_OT") = "ASC"
    End If
    Session("OpretBooking_OB") = OrderBy
    Session("OpretBooking_REC") = 1
Else
    OrderBy = Session("OpretBooking_OB")
    if OrderBy = "" then
        OrderBy = DefaultOrder
        Session("OpretBooking_OB") = OrderBy
        Session("OpretBooking_OT") = DefaultOrderType
    End If
End If

' Open Connection to the database
set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str

sql = "SELECT rejse.booking_id, rejse.rejse_airlines, rejse.rejse_til, Sum(booking.booking_total_pris) AS `Sum Of booking_total_pris`, Sum(booking.booking_koebs_pris) AS `Sum Of booking_koebs_pris`, Sum(udskrift.udskrifts_nr) AS SumOfudskrifts_nr "
sql = sql & " FROM (booking INNER JOIN rejse ON booking.booking_id = rejse.booking_id) INNER JOIN udskrift ON booking.booking_id = udskrift.booking_id "
sql = sql & " WHERE (((rejse.rejse_type)='afrejse')) "
sql = sql & " GROUP BY rejse.booking_id, rejse.rejse_airlines, rejse.rejse_til;"

strsql = "select * from (" & SQL & ")"

If dbwhere <> "" Then
    strsql = strsql & " WHERE " & dbwhere
End If

if OrderBy <> "" then
        strsql = strsql & " ORDER BY " & OrderBy & " " & Session("OpretBooking_OT")
end if

'response.write strsql

set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 1, 2
totalRecs = rs.RecordCount



' Check for a START or PAGENO parameter
If Request.QueryString("start").Count > 0 Then
    startRec = Request.QueryString("start")
    Session("OpretBooking_REC") = startRec
ElseIf Request.QueryString("pageno").Count > 0 Then
    pageno = Request.QueryString("pageno")
    if isnumeric(pageno) then
        startRec = (pageno-1)*displayRecs+1
        if startRec <= 0 then
            startRec = 1
        elseif startRec >= ((totalRecs-1)\displayRecs)*displayRecs+1 then
            startRec = ((totalRecs-1)\displayRecs)*displayRecs+1
        end if
        Session("OpretBooking_REC") = startRec
    Else
        startRec = Session("OpretBooking_REC")
        if not isnumeric(startRec) or startRec = "" then
            'reset start record counter
            startRec = 1
            Session("OpretBooking_REC") = startRec
        End If
    End If
Else
    startRec = Session("OpretBooking_REC")
    if not isnumeric(startRec) or startRec = "" then
        'reset start record counter
        startRec = 1
        Session("OpretBooking_REC") = startRec
    End If
End If
%>
        <body bgcolor="#F6F6F7">

        <FORM ACTION="bookingoversigt.asp">
    <p>
       
    </tr>
</table>
    </p>
<p>
    <table border="0" cellspacing="0" cellpadding="10" width="698" id="table3"><tr>
        <td width="368">
<p align="center">


    <font face="Verdana" size="1"><INPUT TYPE="Text" NAME="psearch" SIZE=15><INPUT TYPE="Submit" NAME="Submit" VALUE="VIS"></font><font face="Verdana" size="1" color="#336699">&nbsp;
    </font><a href="bookingoversigt.asp?cmd=reset"><font size="1" face="Verdana" color="#336699">Vis
          Alle</td><td>


    <p align="center">


    &nbsp;</td><td width="201">


    <p align="right"><b>
<font face="Agency FB" size="4" color="#7AADE1">Booking</font><font face="Agency FB" size="4" color="#990000">oversigt</font></b></td></tr></table>

    <form>
<div align="center">
<table border="0" align="center" cellspacing="1" cellpadding="5" bgcolor="#CCCCCC" width="572">
    <tr bgcolor="#0099CC">
        <td bgcolor="#DEDEE4" width="18">
        <a href="bookingoversigt.asp?order=<%= Server.URLEncode("Id") %>">
        <font size="1" color="#3C4255" face="Verdana">Id</font></a><font color="#3C4255">
        </font> </td>
        <td bgcolor="#DEDEE4" width="66">
        <a href="bookingoversigt.asp?order=<%= Server.URLEncode("dato") %>">
        <font size="1" color="#3C4255" face="Verdana">Dato&nbsp;</font></a></td>
        <td bgcolor="#DEDEE4" width="117">
        <a href="bookingoversigt.asp?order=<%= Server.URLEncode("navn") %>">
        <font size="1" color="#3C4255" face="Verdana">kunde navn&nbsp;(*)</font></a><font color="#3C4255">
        </font>
        </td>
        <td bgcolor="#DEDEE4" width="71">
        <a href="bookingoversigt.asp?order=<%= Server.URLEncode("TotalSalg") %>">
        <font size="1" color="#3C4255" face="Verdana">Afrejse dato</font></a><font color="#3C4255">
        </font>
        </td>
        <td bgcolor="#DEDEE4" width="54">
        <a href="bookingoversigt.asp?order=<%= Server.URLEncode("Profit") %>">
        <font face="Verdana" size="1" color="#3C4255">Salgspris&nbsp;</font></a><font color="#3C4255">
        </font>
        </td>
        <td bgcolor="#DEDEE4" width="27">
        <a href="bookingoversigt.asp?order=<%= Server.URLEncode("Betbetingelser") %>">
        <font face="Verdana" size="1" color="#3C4255">Type</font></a><font color="#3C4255">
        </font> </td>
        <td bgcolor="#DEDEE4" width="57">
        <a href="bookingoversigt.asp?order=<%= Server.URLEncode("Depositium") %>">
        <font size="1" color="#3C4255" face="Verdana">Restbeløb</font></a><font color="#3C4255">
        </font> </td>
        <td bgcolor="#DEDEE4" width="16">&nbsp;</td>
        <td bordercolor="#7B9EBD" bgcolor="#DEDEE4">&nbsp;</td>
        <td bgcolor="#DEDEE4" width="17">&nbsp;</td>
    </tr>


<%
'Avoid starting record > total records
if clng(startRec) > clng(totalRecs) then
    startRec = totalRecs
end if
'Set the last record to display
stopRec = startRec + displayRecs - 1

'Move to first record directly for performance reason
recCount = startRec - 1
if not rs.eof then
    rs.movefirst
    rs.move startRec - 1
end if

recActual = 0
Do While (NOT rs.EOF) AND (recCount < stopRec)
    recCount = recCount + 1
    If Clng(recCount) >= Clng(startRec) Then
        recActual = recActual + 1 %>

<%
    'set row color
    bgcolor="#FFFFFF"
%>

<%   
    ' Display alternate color for rows
    If recCount mod 2 <> 0 Then
        bgcolor="#F5F5F5"
    End If
%>
<%
Response.Write ("rejse_airlines")
Response.Write ("Sum Of booking_koebs_pris")

%>
    <tr bgcolor="<%= bgcolor %>">
        <td width="18"><font face="Verdana" size="1">
<% response.write x_booking_id %>&nbsp;</font></td>
        <td width="66"><font face="Verdana" size="1">
<% response.write x_afrejse_dato %>
        <td width="117"><font face="Verdana" size="1">
<% response.write x_Kunde_navn %>&nbsp;</font></td>
        <td width="71"><font face="Verdana" size="1">
<% response.write x_afrejse_fra %>&nbsp;</font></td>
        <td width="54"><font face="Verdana" size="1">
<% response.write x_booking_total_pris %>&nbsp;</font></td>
        <td width="27"><font face="Verdana" size="1">
<% response.write x_Booking_betallings_type %>&nbsp;</font></td>
        <td width="57"><font face="Verdana" size="1">
<% response.write x_booking_rest_beoloeb%>&nbsp;</font></td>
        <td width="16">
<a href="<%
If not isnull(rs("rejse_airlines")) Then
  response.write "opretbookinglook.asp?key=" & rs("booking_id")
Else
  response.write "java script:alert('Invalid Record! Key is null.');"
End If %>">
        <font face="Verdana" size="1">
        <img src="anatolien/images/view.gif" alt="View" width="16" height="16" border="0"></font></font></td></a>
        <td>
        <a href="<%
        If not isnull(rs("rejse_airlines")) Then
          response.write "OpretBookingedit.asp?key=" & rs("booking_id")
        Else
          response.write "java script:alert('Invalid Record! Key is null.');"
        End If %>">
        <font face="Verdana" size="1">
        <img src="anatolien/images/edit.gif" alt="Edit" width="16" height="16" border="0"></font></a></td>
        <td width="17">
        <a href="<%
        If not isnull(rs("rejse_airlines")) Then
          response.write "OpretBookingdelete.asp?key=" & rs("booking_id")
        Else
          response.write "java script:alert('Invalid Record! Key is null.');"
        End If %>">
        <font face="Verdana" size="1">
        <img src="anatolien/images/delete.gif" alt="Delete" width="16" height="16" border="0"></font></a></td>
    </tr>


<%
    end if

    rs.MoveNext
Loop
%>

</table>

</div>

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<p>&nbsp;</p>

<table border="0" cellspacing="0" cellpadding="10" width="718" id="table1"><tr><td>
<%
if totalRecs > 0 then

    PrevStart = startRec - displayRecs
    If PrevStart < 1 Then PrevStart = 1
    NextStart = startRec + displayRecs
    If NextStart > totalRecs Then NextStart = startRec
    LastStart = ((totalRecs-1)\displayRecs)*displayRecs+1
    %>

    <table border="0" cellspacing="0" cellpadding="0" id="table2"><tr><td><font face="Verdana" size="1">
        Side</font>&nbsp;</td>
<!--first page button-->
    <% If clng(startRec)=1 Then %>
    <td>
    <img src="anatolien/images/firstdisab.gif" alt="First" width="20" height="15" border="0"></td>
    <% Else %>
    <td><a href="bookingoversigt.asp?start=1">
    <img src="anatolien/images/first.gif" alt="First" width="20" height="15" border="0"></a></td>
    <% End If %>
<!--previous page button-->
    <% If clng(PrevStart) = clng(startRec) Then %>
    <td>
    <img src="anatolien/images/prevdisab.gif" alt="Previous" width="20" height="15" border="0"></td>
    <% Else %>
    <td><a href="bookingoversigt.asp?start=<%=PrevStart%>">
    <img src="images/prev.gif" alt="Previous" width="20" height="15" border="0"></a></td>
    <% End If %>
<!--current page number-->
    <td><input type="text" name="pageno" value="<%=(startRec-1)\displayRecs+1%>" size="4" style="font-size: 9pt;"></td>
<!--next page button-->
    <% If clng(NextStart) = clng(startRec) Then %>
    <td>
    <img src="anatolien/images/nextdisab.gif" alt="Next" width="20" height="15" border="0"></td>
    <% Else %>
    <td><a href="bookingoversigt.asp?start=<%=NextStart%>">
    <img src="anatolien/images/next.gif" alt="Next" width="20" height="15" border="0"></a></td>
    <% End If %>
<!--last page button-->
    <% If clng(LastStart) = clng(startRec) Then %>
    <td>
    <img src="anatolien/images/lastdisab.gif" alt="Last" width="20" height="15" border="0"></td>
    <% Else %>
    <td><a href="bookingoversigt.asp?start=<%=LastStart%>">
    <img src="anatolien/images/last.gif" alt="Last" width="20" height="15" border="0"></a></td>
    <% End If %>
    <td><a href="OpretBooking.asp">
    <img src="anatolien/images/addnew.gif" alt="Add new" width="20" height="15" border="0"></a></td>
    <td>&nbsp;<font face="Verdana" size="1">af </font><font size="-1"> <%=(totalRecs-1)\displayRecs+1%></font></td>
      </tr></table>   
    <% If stopRec > recCount Then stopRec = recCount %>
<font face="Verdana" size="1">Oplysning <%= startRec %>  til <%= stopRec %> af <%= totalRecs %>
</font>

<% Else %>

<p><font face="Verdana" size="1">Ingen oplysning&nbsp; fundet!</font></p>
<p>&nbsp;</p>

<% End If %>
</td></tr></table>
<p>&nbsp;</p>

</td>
    </tr></table>
</form>


<%
' Close recordset and connection
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing %>
Avatar billede eagleeye Praktikant
22. marts 2004 - 00:16 #71
og fejlen kommer i denne linje?
response.write "opretbookinglook.asp?key=" & rs("booking_id")
Avatar billede neoo Nybegynder
22. marts 2004 - 00:18 #72
ja
Avatar billede neoo Nybegynder
22. marts 2004 - 00:24 #73
Jeg går i seng nu, hvis der går et lys op for dig, så skriv endelig :D
-Godnat
Avatar billede eagleeye Praktikant
22. marts 2004 - 00:30 #74
Nej jeg er tom lige nu..Jeg skal også i seng snart så godnat :)
Avatar billede neoo Nybegynder
19. juni 2006 - 14:26 #75
lukker
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