Avatar billede plato Juniormester
13. november 2005 - 11:13 Der er 12 kommentarer og
1 løsning

SQL udtræks problem

Hejsa NG.

Jeg vil gerne trække data ud efter ugedag og har brugt følgende sætning:

            Function fncTextChange(strText)
            strTekst = Trim(strText)
              fncTextChange = Replace(strTekst,"1","Mandag")
              fncTextChange = Replace(fncTextChange,"2","Torsdag")
              fncTextChange = Replace(fncTextChange,"3","Onsdag")
              fncTextChange = Replace(fncTextChange,"4","Torsdag")
              fncTextChange = Replace(fncTextChange,"5","Fredag")
              fncTextChange = Replace(fncTextChange,"6","Lørdag")
              fncTextChange = Replace(fncTextChange,"7","Søndag")
            End Function
            strSQL = "SELECT * FROM tvmovies WHERE " & fncTextChange(Weekday(Now,VbMonday)) & " = ugedag ORDER BY dato AND spilletid"
            Set rs = objConn.Execute(strSQL)

Men det giver selvfølgelig fejl. Nogen gode idéer?
Avatar billede razmataz Nybegynder
13. november 2005 - 11:31 #1
Prøv at bytte om "SELECT * FROM tvmovies WHERE ugedag = " & fncTextChange(Weekday(Now,VbMonday)) & " ORDER BY dato AND spilletid"
Avatar billede plato Juniormester
13. november 2005 - 11:34 #2
Det giver fejl i linie 58 som er: "Set rs = objConn.Execute(strSQL)"

                      <%
            Function fncTextChange(strText)
            strTekst = Trim(strText)
              fncTextChange = Replace(strTekstChange,"1","Mandag")
              fncTextChange = Replace(fncTextChange,"2","Torsdag")
              fncTextChange = Replace(fncTextChange,"3","Onsdag")
              fncTextChange = Replace(fncTextChange,"4","Torsdag")
              fncTextChange = Replace(fncTextChange,"5","Fredag")
              fncTextChange = Replace(fncTextChange,"6","Lørdag")
              fncTextChange = Replace(fncTextChange,"7","Søndag")
            End Function
            strSQL = "SELECT * FROM tvmovies WHERE ugedag = " & fncTextChange(Weekday(Now,VbMonday)) & " ORDER BY dato AND spilletid"
            Set rs = objConn.Execute(strSQL)

            Do While Not rs.EOF
              film = rs("film")
              kanal = rs("kanal")
              spilletid = rs("spilletid")
              dato = rs("dato")
              genre = rs("genre")
              movielink = rs("movielink")
            %>
Avatar billede razmataz Nybegynder
13. november 2005 - 11:38 #3
Nu ved jeg meget lidt om php, men er der en speciel årsag til at første replace linje er strTekst.. i stedet for fncText... ?
Avatar billede razmataz Nybegynder
13. november 2005 - 11:40 #4
Det lyder som om der er en fejl i din SQL string .. har du prøvet at skrive den manuelt? " SELECT * FROM tvmovies WHERE ugedag = mandag ORDER BY dato AND spilletid " ?
Avatar billede plato Juniormester
13. november 2005 - 11:51 #5
Prøver lige den manuelle.
Avatar billede erikjacobsen Ekspert
13. november 2005 - 11:52 #6
Der er i hvert fald flere fejl i
" SELECT * FROM tvmovies WHERE ugedag = mandag ORDER BY dato AND spilletid "
hvis det er hvad din sql-sætning er. Den skal nok være
" SELECT * FROM tvmovies WHERE ugedag = 'mandag' ORDER BY dato,spilletid "
Avatar billede razmataz Nybegynder
13. november 2005 - 11:59 #7
Kender ikke den rigtige syntax for php :)
Avatar billede plato Juniormester
13. november 2005 - 12:07 #8
Nu har jeg lavet den sådan her:

                      <%
            Function fncTextChange(strText)
            strTekst = Trim(strText)
              fncTextChange = Replace(fncTextChange,"1","Mandag")
              fncTextChange = Replace(fncTextChange,"2","Torsdag")
              fncTextChange = Replace(fncTextChange,"3","Onsdag")
              fncTextChange = Replace(fncTextChange,"4","Torsdag")
              fncTextChange = Replace(fncTextChange,"5","Fredag")
              fncTextChange = Replace(fncTextChange,"6","Lørdag")
              fncTextChange = Replace(fncTextChange,"7","Søndag")
            End Function
            strSQL = "SELECT * FROM tvmovies WHERE ugedag = '"&fncTextChange(Weekday(Now,VbMonday))&"' ORDER BY dato,spilletid"
            Set rs = objConn.Execute(strSQL)

            Do While Not rs.EOF
              film = rs("film")
              kanal = rs("kanal")
              spilletid = rs("spilletid")
              dato = rs("dato")
              genre = rs("genre")
              movielink = rs("movielink")
              ugedag = rs("ugedag")
            %>

Det giver ingen fejl, men virker heller ikke. Den viser ikke data for søndag. Kører jeg en Response.Write på dagen kommer den fint frem.

Det er forøvrigt ASP ;)
Avatar billede razmataz Nybegynder
13. november 2005 - 12:11 #9
Nårh ja .. ASP, PHP, det er jo stort set det samme :) Virkede søgningen ved manuel indskrivning?
Avatar billede razmataz Nybegynder
13. november 2005 - 12:12 #10
har du checket om søndag har en dato i din dbase?
Avatar billede erikjacobsen Ekspert
13. november 2005 - 12:17 #11
Din funktion skal nok være

  Function fncTextChange(strText)
            strTekst = Trim(strText)
              strTekst = Replace(strTekst,"1","Mandag")
              strTekst = Replace(strTekst,"2","Torsdag")
              strTekst = Replace(strTekst,"3","Onsdag")
              strTekst = Replace(strTekst,"4","Torsdag")
              strTekst = Replace(strTekst,"5","Fredag")
              strTekst = Replace(strTekst,"6","Lørdag")
              strTekst = Replace(strTekst,"7","Søndag")
              fncTextChange=strTekst
            End Function
Avatar billede plato Juniormester
13. november 2005 - 12:17 #12
Der er en søndag. Og hvis jeg kører en:
tvmovies.asp?mode=select&ugedag=Søndag

som har denne sql streng:
strSQL = "SELECT * FROM tvmovies WHERE ugedag LIKE '" & Request.QueryString("ugedag") & "' OR showkanal LIKE '" & Request.QueryString("showkanal") & "' ORDER BY dato"

virker det fint.
Avatar billede plato Juniormester
13. november 2005 - 12:18 #13
Tak nu virker det.. Det var Function der hjalp :)
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