Avatar billede grafikeren Nybegynder
08. februar 2004 - 15:11 Der er 14 kommentarer og
1 løsning

Søgning fra SQL database.

Hej

Jeg har følgende søge script, som søger i en SQL database ud fra et søgeordet "soegeord":

"
ArtistParts = split(Soegeord, " ")

SQL = "Select Count(Ku) As Antal, Id, Ku, Al, Ge, Ov From tblX Where"

FirstPart = true
for each Part in ArtistParts
  if FirstPart then
    SQL = SQL & " Ku LIKE '%" & Part & "%'"
    FirstPart = false
  else
    SQL = SQL & " AND Ku LIKE '%" & Part & "%'"
  end if
next
    SQL = SQL & " group by Ku order by "&Sortby&" "&sortdir&""
set rs = forbind.execute(SQL)

if rs("Antal") = 1 then
if not complex(rs("Ku")) <> complex(Soegeord) then
response.redirect("www.xxx.xx")
end if
end if
"

rs("Antal") virker ikke rigtigt. Selvom jeg skriver "if rs("Antal") = 1 then" , og antal kun er en post på den pågældende "ku", så redirecter den ikke. Sådan er det i hele scriptet... Hvad kan jeg gøre?
Avatar billede eagleeye Praktikant
08. februar 2004 - 15:19 #1
Prøv med Int omkring:

if Int(rs("Antal")) = 1 then


Og Prøv at tjekke om dette er helt som det ska være:
if not complex(rs("Ku")) <> complex(Soegeord) then

For så kunne du ligé så godt skrive:
if complex(rs("Ku")) = complex(Soegeord) then
Avatar billede grafikeren Nybegynder
08. februar 2004 - 15:29 #2
Har nu gjort som du skrev. Virker stadig ikke. Har skrevet "if complex(rs("Ku")) = complex(Soegeord) then" og "if Int(rs("Antal")) = 1 then"

Kan det være noget med det "next"?
Avatar billede eagleeye Praktikant
08. februar 2004 - 15:38 #3
Har du prøvet at udskrive antallet, og se hvad den skriver??

Response.Write rs("antal")
Avatar billede grafikeren Nybegynder
08. februar 2004 - 15:50 #4
Lige et ekstra bonus spørgsmål: Hvordan splitter jeg noget fra en sql database, der hedder 1968-04-11 00:00:00. Det skal bare være 1968. Ekstra point for dette.
Avatar billede eagleeye Praktikant
08. februar 2004 - 15:53 #5
Hvis det er de 4 første karakter kan du bruge Left:

aar = Left(rs("kolonne"),4)


eller måske med Year også det ligner jo en dato med tid.

aar = Year(rs("kolonne"))
Avatar billede grafikeren Nybegynder
08. februar 2004 - 16:17 #6
Jeg har fundet ud af, at der ikke er fejl i koden... :-) Problemet var vist bare, at søgeordene skulle stå i samme rækkefølge som i databasen... Kan det undgåes?

Senere i koden lavede den også fejl, men det løste jeg ved at sætte cititationstegn rundt om ettallet: "if Int(rs("Antal")) = "1" then". Underligt hvorfor det var nødvendigt!
Avatar billede eagleeye Praktikant
08. februar 2004 - 16:22 #7
Umiddelbart skulle rækkefølgen være lige meget men en kolonne skal indeholde ALLE de ord som er tastet ind fordi der står AND her i denne linje.:

SQL = SQL & " AND Ku LIKE '%" & Part & "%'"

Hvis den bare skal finde et ord så skal der stå OR
Avatar billede grafikeren Nybegynder
08. februar 2004 - 17:25 #8
Lige meget hvad jeg gør, så kan jeg ikke få noget trukket ud af den kolonne med datoen. Den hedder "Release".

Har prøvet at udskrive disse:
udgivet = Left(rs("Release"),4)
udgivet = rs("Release")
udgivet = Year(rs("Release"))
udgivet = Year(rs("release"))

-> ingen af dem viser noget. Ved alle poster i databasen står der en dato.
Avatar billede eagleeye Praktikant
08. februar 2004 - 17:29 #9
Hvis du udsrkiver det:
response.write rs("Release")
Står det så som 1968-04-11 00:00:00  eller hvordan?

Når det er en Date/Time vil det måske bliver formateret sådan dato formatet passer tild et serveren køre, men så skulle Year give noget fornuftigt..
Avatar billede grafikeren Nybegynder
08. februar 2004 - 17:31 #10
response.write viser intet... Fatter det ikke!
Avatar billede eagleeye Praktikant
08. februar 2004 - 17:33 #11
Så tyder det på kolonnen er tom?
Eller har du bruget den et andet sted i koden?
Avatar billede grafikeren Nybegynder
08. februar 2004 - 17:38 #12
Den er ikke tom, og jeg har ikke brugt den andre steder.

Har prøvet med disse (en efter en):
<%
'udgivet = Left(rs("Release"),4)
'udgivet = rs("Release")
'udgivet = Year(rs("Release"))
udgivet = Year(rs("release"))
%>
<% Response.Write udgivet %>

og har prøvet <% Response.Write rs("Release") %>

... det kan jo ikke passe!
Avatar billede grafikeren Nybegynder
08. februar 2004 - 17:38 #13
og <%=udgivet%>
Avatar billede grafikeren Nybegynder
08. februar 2004 - 17:47 #14
DOGH! Den var ikke taget med i "SQL = "Select Count(Ku) As Antal, Id, Ku, Al, Ge, Ov From tblX Where""

Sorry... Læg et svar eagleeye - 50 point.
Avatar billede eagleeye Praktikant
08. februar 2004 - 18:19 #15
arh ok, jeg kunne nu heller ikke helt forstår det :))
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