Avatar billede riishoj Nybegynder
24. april 2004 - 19:10 Der er 32 kommentarer og
1 løsning

Virker ikke - hvorfor?

Kan en af eksperterne finde ud af, hvorfor mit script ikke virker. Der bliver intet hentet fra db'en, selvom der er poster i den, og jeg får heller ikke nogen fejlmeddelelse.

<%
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath ("/xxx.mdb")
    Conn.Open DSN
strSQL = "SELECT tekst,startdato,slutdato FROM meddelelse WHERE meddeler='" & session("brugerID") & "';"

 
Set rs = Conn.Execute(strSQL)


' Hvis der er fundet poster på søgningen

'asp herfra------------------------
'hvis session("brugerID") er tom så er man ikke logget ind.
if session("brugerID") = "" then
  Response.write"<tr><td width='100%'><p align=center><font face=Verdana color=#000000><b>Du er ikke logget ind!</b></font></td></tr>"
Else


    Response.Write "<table width=80% border=0 align=center cellpadding=5 cellspacing=0>"
    Response.Write "<tr bgcolor=#98C4B8><th><font color=black face=verdana size=2>Tekst</font></th><th><font color=black face=verdana size=2>Startdato</font></th><th><font color=black face=verdana size=2>Slutdato</font></th><th><font color=black face=verdana size=2>Slet&nbsp;&nbsp;</font></th></tr>"
    intCount = 0
  Do while NOT (rs.EOF or rs.BOF)
  if (intCount MOD 2 = 0) then
    bgColor = "#cccccc" 'Første farve
   
  else
    bgColor = "#999999" 'Anden farve
 
  end if
  intCount = intCount + 1
       
        Response.Write "<tr>"
        Response.Write "<td width=25% align=left bgcolor='" & bgColor & "'><font color=black face=verdana size=2>" & rs("tekst") & "</td>"
        Response.Write "<td width=25% align=center bgcolor='" & bgColor & "'><font color=black face=verdana size=2>" & rs("startdato") & "</td>"
        Response.Write "<td width=25% align=center bgcolor='" & bgColor & "'><font color=black face=verdana size=2>" & rs("slutdato") & "</td>"
       
        Response.Write "<td width=25% align=center bgcolor='" & bgColor & "'><font color=black face=verdana size=2><a class=speciel3 href='slet_meddelelse.asp?Id="&rs("Id")&"'>slet</a></td>"
     


        rs.MoveNext
    Loop
   
    Response.Write "</table>"

  end if 
   
Conn.Close
Set Conn = Nothing
%>
Avatar billede cdc Novice
24. april 2004 - 19:28 #1
strSQL = "SELECT FROM meddelelse WHERE meddeler='" & session("brugerID") & "';"

måske
Avatar billede michael_stim Ekspert
24. april 2004 - 19:36 #2
strSQL = "SELECT * FROM meddelelse WHERE meddeler=" & session("brugerID") & "
Avatar billede michael_stim Ekspert
24. april 2004 - 19:37 #3
Går ud fra brugerID er int eller lign.
Avatar billede riishoj Nybegynder
24. april 2004 - 19:39 #4
Næ, den går ikke.
Avatar billede michael_stim Ekspert
24. april 2004 - 19:40 #5
Skriv din querystring ud response.write strSQL
Avatar billede riishoj Nybegynder
24. april 2004 - 19:51 #6
Ja, nu kan jeg godt se fejlen. session("brugerID") referer til ID nummeret i min logintabel, og ikke til et ID i tabellen meddelelse. Meddeler i tabellen meddelelse er lig med brugerID i logintabellen, så hvordan laver man lige det?
Avatar billede michael_stim Ekspert
24. april 2004 - 19:58 #7
"SELECT m.tekst,m.startdato,m.slutdato FROM meddelelse m, login l WHERE l.login=" & session("brugerID") & "
Avatar billede michael_stim Ekspert
24. april 2004 - 20:01 #8
"SELECT m.tekst,m.startdato,m.slutdato,l.brugerID FROM meddelelse m, login l WHERE l.brugerID=" & session("brugerID") & "

Skal det nok väre
Avatar billede riishoj Nybegynder
24. april 2004 - 20:01 #9
Giver fejlen

[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
Avatar billede michael_stim Ekspert
24. april 2004 - 20:12 #10
"SELECT m.tekst,m.startdato,m.slutdato,l.brugerID FROM meddelelse m, login l WHERE l.brugerID=" & session("brugerID") & " AND l.brugerID = m.meddeler"

Pröv den.
Avatar billede riishoj Nybegynder
24. april 2004 - 20:28 #11
Giver fejlen

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i strengen i forespørgselsudtrykket "l.brugerID=9 AND l.brugerID = m.meddeler";".

Min session virker dog, da 9= ID på den bruger det p.t. er logget på
Avatar billede michael_stim Ekspert
24. april 2004 - 20:35 #12
Du skal nok relatere tabellerne til hinanden. Sät den ene ID til foreign key og lav en relation.

Hvilken datatype er din ID? Er det en int?
Avatar billede riishoj Nybegynder
24. april 2004 - 20:44 #13
Ja, ID er int. Det første du skriver fatter jeg ikke :(
Avatar billede michael_stim Ekspert
24. april 2004 - 20:59 #14
OK, jeg tror jeg har fået det hele forkert om foden. Kan du sende strukturen på de to tabeller.
Avatar billede michael_stim Ekspert
24. april 2004 - 21:06 #15
Pröv denne her,
strSQL = "SELECT * FROM meddelelse WHERE meddeler=" & CInt(session("brugerID")) & "
Avatar billede riishoj Nybegynder
24. april 2004 - 21:13 #16
Prøv at se her. Dette lille script udskriver navnet på den "meddeler", som er logget på.

<%
'asp herfra------------------------
'hvis session("brugerID") er tom så er man ikke logget ind.
if session("brugerID") = "" then
  Response.write"<tr><td width='100%'><p align=center><font face=Verdana color=#000000><b>Du er ikke logget ind!</b></font></td></tr>"
Else
Response.write"<div align=center><center><table border=0 width=70% bgcolor=#98C4B8>"

 
  Response.write"<tr><td width='100%'><p align=center><font face=Verdana color=#FFFFFF><b>"&session("brugernavn")&"</b></font></td>"
     
   
     
  Response.write"</tr></table></center></div>"
end if
%>
Burde det her så ikke virke?

<%
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath ("/nyreservation/skoleweb.mdb")
    Conn.Open DSN
strSQL ="SELECT tekst,startdato,slutdato,id FROM meddelelse WHERE meddeler=" & session("brugernavn") & " AND tekst='" & tekst & "' AND startdato='" & startdato & "'AND slutdato='" & slutdato & "' AND Id='" & Id & "'"
Set rs = Conn.Execute(strSQL)
response.write strSQL

' Hvis der er fundet poster på søgningen

'asp herfra------------------------
'hvis session("brugerID") er tom så er man ikke logget ind.
if session("brugerID") = "" then
  Response.write"<tr><td width='100%'><p align=center><font face=Verdana color=#000000><b>Du er ikke logget ind!</b></font></td></tr>"
Else

 

    Response.Write "<table width=80% border=0 align=center cellpadding=5 cellspacing=0>"
    Response.Write "<tr bgcolor=#98C4B8><th><font color=black face=verdana size=2>Tekst</font></th><th><font color=black face=verdana size=2>Startdato</font></th><th><font color=black face=verdana size=2>Slutdato</font></th><th><font color=black face=verdana size=2>Slet&nbsp;&nbsp;</font></th></tr>"
    intCount = 0
  Do while NOT (rs.EOF or rs.BOF)
  if (intCount MOD 2 = 0) then
    bgColor = "#cccccc" 'Første farve
   
  else
    bgColor = "#999999" 'Anden farve
 
  end if
  intCount = intCount + 1
       
        Response.Write "<tr>"
        Response.Write "<td width=25% align=left bgcolor='" & bgColor & "'><font color=black face=verdana size=2>" & rs("tekst") & "</td>"
        Response.Write "<td width=25% align=center bgcolor='" & bgColor & "'><font color=black face=verdana size=2>" & rs("startdato") & "</td>"
        Response.Write "<td width=25% align=center bgcolor='" & bgColor & "'><font color=black face=verdana size=2>" & rs("slutdato") & "</td>"
       
        Response.Write "<td width=25% align=center bgcolor='" & bgColor & "'><font color=black face=verdana size=2><a class=speciel3 href='slet_meddelelse.asp?Id="&rs("Id")&"'>slet</a></td>"
     


        rs.MoveNext
    Loop
   
    Response.Write "</table>"

  end if 
   
Conn.Close
Set Conn = Nothing
%>
Avatar billede riishoj Nybegynder
24. april 2004 - 21:17 #17
Til dit sidste forslag

Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
Avatar billede michael_stim Ekspert
24. april 2004 - 21:19 #18
Jeg mener jeg vil have navnet på kolonnerne i din database-tabeller og hvilken datatyper der er.
Avatar billede riishoj Nybegynder
24. april 2004 - 21:21 #19
brugerID er nok ikke int. men tekst.
Hvorfor får jeg hele tiden fejlen

[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.

Dette sker næsten lige gyldigt hvad jeg skriver
Avatar billede michael_stim Ekspert
24. april 2004 - 21:23 #20
strSQL ="SELECT tekst,startdato,slutdato,id FROM meddelelse WHERE meddeler=" & session("brugernavn") & " AND tekst='" & tekst & "' AND startdato='" & startdato & "'AND slutdato='" & slutdato & "' AND Id='" & Id & "'"

Hvor får du alle de variabler fra? (tekst, startdato osv)
Avatar billede riishoj Nybegynder
24. april 2004 - 21:26 #21
OK. Bemærk lige, at jeg kan udskrive session("brugernavn") som navnet på meddeleren. Jeg må vel derfor skulle bruge session("brugernavn") i min SELECT og ikke session("brugerID"). Kolonnerne i db'en hedder tekst, startdato, slutdato og meddeler, og de er alle af tekstypen (sorry).
Avatar billede michael_stim Ekspert
24. april 2004 - 21:28 #22
Ja men hvor får du variablerne fra? AND startdato='" & OBS.DEM HER startdato & "
Avatar billede riishoj Nybegynder
24. april 2004 - 21:30 #23
Der er selvfølgelig også en Id-kolonne.
Avatar billede michael_stim Ekspert
24. april 2004 - 21:31 #24
strSQL ="SELECT tekst,startdato,slutdato,id FROM meddelelse WHERE meddeler='" & session("brugernavn") & "'"

Det her burde fungere hvis det er et tekstfelt.
Avatar billede riishoj Nybegynder
24. april 2004 - 21:34 #25
Nej, det er noget vrøvl. Det er jo ikke variabler. Så burde det her altså virke

strSQL ="SELECT tekst,startdato,slutdato,id FROM meddelelse WHERE meddeler=" & session("brugernavn")";"
Avatar billede riishoj Nybegynder
24. april 2004 - 21:36 #26
Men det giver også fejlen med for så parametre.
Avatar billede riishoj Nybegynder
24. april 2004 - 21:38 #27
så=få
Avatar billede michael_stim Ekspert
24. april 2004 - 21:39 #28
Kik her.
Kommentar: michael_stim
24/04-2004 21:31:07
Avatar billede riishoj Nybegynder
24. april 2004 - 22:05 #29
Får fejlen

[Microsoft][ODBC Microsoft Access-driver] SELECT-sætningen indeholder et reserveret ord eller argument, der er stavet forkert eller mangler, eller tegnsætningen er ikke korrekt.

Her er sql'en cut'n pasted. Kan du se fejlen

strSQL = "SELECT tekst,startdato,slutdato,Id, FROM meddelelse WHERE meddeler='" & session("brugernavn") & "'"
Id er jo ikke et tekstfelt, men det skulle vel ikke betyde noget i den her forbindelse?
Avatar billede michael_stim Ekspert
24. april 2004 - 22:14 #30
strSQL = "SELECT * FROM meddelelse WHERE meddeler='" & session("brugernavn") & "'"

Der var et komma for meget, efter id.
Avatar billede riishoj Nybegynder
24. april 2004 - 22:18 #31
Pyha, så virker det. Det var en hård fødsel. Man kan virkelig stirre sig blind på en kode. 1000 tak for hjælpen -:). Send lige et svar.
Avatar billede michael_stim Ekspert
24. april 2004 - 22:21 #32
OK, det korte af det lange, så var det kun din session det var noget galt med. Jeg tror ikke jeg er så pedagogisk ;o)

Godt at det virker.
Avatar billede riishoj Nybegynder
24. april 2004 - 22:23 #33
Pædagogik er fint her på Eksperten, men tålmodighed er bedre.
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