Avatar billede baitianlong Nybegynder
12. juni 2002 - 21:33 Der er 32 kommentarer og
1 løsning

Søg i database, og returnér værdi.

Jeg har en database med titler på sange, som jeg har fået lidt hjælp til at lave her...

Se den på http://www.legende.dk/songlyrics.html

Jeg kunne godt tænke mig at man kunne søge i sangtitlerne efter ord, og så blev resultaterne farvede i selectoren (kan man det) ??
Avatar billede medions Nybegynder
12. juni 2002 - 21:36 #1
Her er "opskriften" på hvordan du laver det:

http://activedeveloper.dk/aspdigital/kapitel2/search.asp

Held og lykke med det...
//>Rune
Avatar billede baitianlong Nybegynder
12. juni 2002 - 21:40 #2
Jeg vil gerne have lidt mere personlig hjælp end et link /o;

Og den med at farve/vælge de fundne i selectoren er jeg ret spændt på.
Avatar billede baitianlong Nybegynder
12. juni 2002 - 21:45 #3
Den nuværende asp-kode ser sådan her ud:

iType = Request.QueryString("iType")
If iType = "" Then
response.Write "<option value="""">Please select genre</option>"

Else
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath("../legendarisk.mdb")

strSQL = "SELECT sTitel, sURL FROM lyrics WHERE iType=" & iType & " ORDER BY sTitel "
Set oRs = oConn.Execute(strSQL)

while not oRs.EOF
response.Write "<option value=""songs/" & oRs(1) & """>" & oRs(0) & "</option>"
oRs.MoveNext
Wend

oRs.Close
Set oRs = Nothing
oConn.Close


Den må man da hurtigt kunne fikse lidt, så man kan søge og farve titlerne (O;
Avatar billede pato Nybegynder
12. juni 2002 - 22:16 #4
1) du skal oprettet et felt i din form hvor man indtaster det man søger eks. "strSearch". Dette felt skal med i din querystring
strSearchfor = Request.QueryString("strSearch")


2) i din løkke hvor du løber recordsættet igennem kan du teste om strSearchfor  findes i feltet med

while not oRs.EOF

if instr(1, oRs(0) ,strSearchfor )>0 then

  vis en farve eller noget
response.Write "ok<br>"
else

  neutral

end if

oRs.MoveNext
Wend
Avatar billede pato Nybegynder
12. juni 2002 - 22:27 #5
Du kan selvfølgelig også lægge søgefeltet ind i din sql og kun finde dem der opfylder kriterierne!

strSQL = "SELECT sTitel, sURL FROM lyrics WHERE iType=" & iType & "AND sTitel Like ''*" & strSearchfor & "*'' ORDER BY sTitel "
Avatar billede pato Nybegynder
12. juni 2002 - 23:51 #6
du kunne jo sætte selve font color

While not oRs.EOF
if instr(1, oRs(0) ,strSearchfor ) then
  response.Write ("<option ><font color=red>" & oRs(0) & "</font></option>")
else
  response.Write ("<option >" & oRs(0) & "</option>")
end if
oRs.MoveNext
Wend
Avatar billede baitianlong Nybegynder
12. juni 2002 - 23:58 #7
Det er uden tvivl smukt, men jeg kan fandme ikke få det til at fungere, jeg har rodet med det i flere timer !?!? /o;

Her er mit seneste hit. Den skulle så kun skrive dem med søgekriteriet, men den skriver aldrig nogen titler når man søger

iType = Request.QueryString("iType")
strSearchfor = Request.QueryString("strSearch")

If (iType = "" and strSearchfor = "") Then
response.Write "<option value="""">Please select genre</option>"

Else
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath("../legendarisk.mdb")

if (strSearchfor = "") then
strSQL = "SELECT sTitel, sURL FROM lyrics WHERE iType=" & iType & " ORDER BY sTitel "
else
strSQL = "SELECT sTitel, sURL FROM lyrics WHERE iType=" & iType & "AND sTitel Like ''*" & strSearchfor & "*'' ORDER BY sTitel "
end if

Set oRs = oConn.Execute(strSQL)

while not oRs.EOF
response.Write "<option value=""songs/" & oRs(1) & """>" & oRs(0) & "</option>"
oRs.MoveNext
Wend

oRs.Close
Set oRs = Nothing
oConn.Close

End If
Avatar billede pato Nybegynder
12. juni 2002 - 23:59 #8
Det er en flot side du har fået lavet der... kan godt lide dit design ;-)
Avatar billede baitianlong Nybegynder
13. juni 2002 - 00:03 #9
Jeg fatter heller ikke...

Hvis jeg bruger din seneste kode sådan her:

<%
iType = Request.QueryString("iType")
strSearchfor = Request.QueryString("strSearch")

If (iType = "" and strSearchfor = "") Then
response.Write "<option value="""">Please select genre</option>"

Else
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath("../legendarisk.mdb")

strSQL = "SELECT sTitel, sURL FROM lyrics WHERE iType=" & iType & " ORDER BY sTitel "

Set oRs = oConn.Execute(strSQL)

While not oRs.EOF
if instr(1, oRs(0) ,strSearchfor ) then
  response.Write ("<option ><font color=red>" & oRs(0) & "</font></option>")
else
  response.Write ("<option >" & oRs(0) & "</option>")
end if
oRs.MoveNext
Wend

oRs.Close
Set oRs = Nothing
oConn.Close


End If
%>

Når man så skriver denne adresse:

http://80.62.79.61/legendarisk/lyrics/lyricsDB.asp?itype=1&strSearch=candyman

Så burde "candyman" sgu da være rød !?!?!??!?!?
Avatar billede baitianlong Nybegynder
13. juni 2002 - 00:05 #10
Mange tak for rosen om min side (o:

men læs lige min seneste kommentar. Her sender jeg candyman med i strSearch, men den bliver ikke rød. Kan du fortælle mig hvorfor.
Avatar billede pato Nybegynder
13. juni 2002 - 00:05 #11
sorry...kan heller ikke lige få ""sTitel Like ''*" & strSearchfor & "*'' ORDER BY sTitel "" til at virke...det var bare et forslag...

men jeg syntes da det er ok at vise alle i genre og dem der opfylder teksten med en anden farve.
Avatar billede baitianlong Nybegynder
13. juni 2002 - 00:12 #12
Det synes jeg også er glimrende, jeg har også rodet med dette:

While not oRs.EOF
if instr(1, oRs(0) ,strSearchfor ) then
  response.Write "<option value=""songs/" & oRs(1) & """ selected>" & oRs(0) & "</option>"
else
  response.Write "<option value=""songs/" & oRs(1) & """>" & oRs(0) & "</option>"
end if
oRs.MoveNext
Wend


Hvis det virkede ville de valgte være markerede
Avatar billede pato Nybegynder
13. juni 2002 - 00:16 #13
det må du undskylde....jeg har vist fået det forkerte ben ud af sengen idag...det er jo en selection, nej så ved jeg det ikke... med mindre du laver din selection om til en <div> med fast størrelse, hvor du laver rækker <tr> som så kan skifte farve.

sorry
Avatar billede baitianlong Nybegynder
13. juni 2002 - 00:24 #14
Man må da kunne bruge denne fremgangsmåde.

Den skal teste om strSearchfor er i titlerne, efterhånden som den henter dem...

Det kan da ikke være så umuligt.
Avatar billede pato Nybegynder
13. juni 2002 - 00:40 #15
Prøv lige en <div> og se hvad du syntes :-)


<style>
.clsListDIV
{
    BORDER-RIGHT: 0px;
    BORDER-TOP: 0px;
    FONT-SIZE: 8pt;
    MARGIN: 0px;
    OVERFLOW: auto;
    BORDER-LEFT: 0px;
    BORDER-BOTTOM: 0px;
    HEIGHT: 120px;
    BACKGROUND-COLOR: transparent
}
</style>

   
<%
iType = Request.QueryString("iType")
strSearchfor = Request.QueryString("strSearch")

If (iType = "" and strSearchfor = "") Then
response.Write "<option value="""">Please select genre</option>"

Else
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath("../legendarisk.mdb")

strSQL = "SELECT sTitel, sURL FROM lyrics WHERE iType=" & iType & " ORDER BY sTitel "

Set oRs = oConn.Execute(strSQL)

   
    Response.Write("<table valign=top  border=0 align=Center cellpadding=0 cellspacing=0><tr><td>")
    response.Write ("<DIV class='clsListDIV' name='lyr_song' id='lyr_songs'>")
   
    Response.Write("<table align=center class='clsListLabels' cellpadding=0 cellspacing=0 border=0><tr><td>") 'This extra table is necesary, because of an error in IIS or IE.
    Response.Write("<table width='100%' border=0 align=Center cellpadding=0 cellspacing=0>")
                       
    While not oRs .EOF
    if instr(1, oRs(0) ,strSearchfor ) then
        response.Write ("<tr><td><font color=red>" & oRs(0)  & "</font></td></tr>")
    else
        response.Write ("<tr><td>" & oRs(0) & "</td></tr>")
    end if
      oRs.MoveNext

    wend
   
    response.Write("</table></td></tr></table></DIV></td></tr></table>")
   
    oRs .close

end if
Avatar billede pato Nybegynder
13. juni 2002 - 00:44 #16
SÅDAN HER... det virker fint med dine options...selected skal bare være = true


While not oRs.EOF
if instr(1, oRs(0) ,strSearchfor ) then
  response.Write "<option value=""songs/" & oRs(1) & """ selected=true>" & oRs(0) & "</option>"
else
  response.Write "<option value=""songs/" & oRs(1) & """>" & oRs(0) & "</option>"
end if
oRs.MoveNext
Wend
Avatar billede pato Nybegynder
13. juni 2002 - 00:49 #17
Håber ikke du er blevet helt forvirret....men div syntes jeg er meget god..da man i hver række kan sætte billeder ind..links, farver felter..ja alt hvad man ellers kan. Men options er lettere. Især når du er så langt.


m.v.h.

Pato
Avatar billede baitianlong Nybegynder
13. juni 2002 - 00:51 #18
Det duer sgu heller ikke !!! Jeg bliver sindsyg /o;

Prøv:
http://80.62.79.61/legendarisk/lyrics/lyricsDB.asp?iType=1&strSearch=candyman

Der er ikke nogen blå. Prøv så:
http://80.62.79.61/legendarisk/lyrics/lyricsDB.asp?iType=1

Der er de allesammen blå (når strSearch er tom)
Avatar billede baitianlong Nybegynder
13. juni 2002 - 00:56 #19
Jeg vil ikke ændre det eksisterende.

-Det er linien:
if instr(1, oRs(0) ,strSearchfor ) then
-der er noget galt med
Avatar billede pato Nybegynder
13. juni 2002 - 01:06 #20
prøv

if instr(1, oRs("sTitel") ,strSearchfor )
Avatar billede pato Nybegynder
13. juni 2002 - 01:09 #21
Avatar billede pato Nybegynder
13. juni 2002 - 01:14 #22
vedr. alle valgt...check strSearchfor
if isnull(strSearchfor) or strSearchfor="" then
  response.Write "<option value=""songs/" & oRs(1) & """>" & oRs("sTitel") & "</option>"
else
if instr(1, oRs("sTitel") ,strSearchfor ) then
  response.Write "<option value=""songs/" & oRs(1) & """ selected=true>" & oRs("sTitel") & "</option>"
else
  response.Write "<option value=""songs/" & oRs(1) & """>" & oRs("sTitel") & "</option>"
end if
end if
Avatar billede baitianlong Nybegynder
13. juni 2002 - 01:22 #23
Hurra. Nu er den der. Men den er casesensitive.

http://www.legendenet.dk/legendarisk/lyrics/lyricsDB.asp?iType=1&strSearch=candyman

giver ingenting

http://www.legendenet.dk/legendarisk/lyrics/lyricsDB.asp?iType=1&strSearch=Candyman

virker.

Kan du ikke lige fikse den så den skider på store små bogstaver. Ellers godt klaret ((o;
Avatar billede pato Nybegynder
13. juni 2002 - 01:25 #24
jo da...

if instr(1, ucase(oRs("sTitel"), ucase(strSearchfor))
Avatar billede baitianlong Nybegynder
13. juni 2002 - 01:31 #25
Der manglede vist en slutparantes + den kan ikke lide det )0;
Avatar billede pato Nybegynder
13. juni 2002 - 01:34 #26
ups..

mangler en )

instr(1, ucase(oRs("sTitel")), ucase(strSearchfor))

jeg må være træt :-)
Avatar billede pato Nybegynder
13. juni 2002 - 01:36 #27
Avatar billede baitianlong Nybegynder
13. juni 2002 - 01:40 #28
Den virkede jo fint før.
Lad os nu putte den i seng.

While not oRs.EOF
if isnull(strSearchfor) or strSearchfor="" then
  response.Write "<option value=""songs/" & oRs(1) & """>" & oRs("sTitel") & "</option>"
else
if instr(1, ucase(oRs("sTitel"), ucase(strSearchfor))) then
  response.Write "<option value=""songs/" & oRs(1) & """ selected=true>" & oRs("sTitel") & "</option>"
else
  response.Write "<option value=""songs/" & oRs(1) & """>" & oRs("sTitel") & "</option>"
end if
end if
oRs.MoveNext
Wend

Det står der nu, men den virker ikke. Den viser ingen resultater overhovedet.
Avatar billede pato Nybegynder
13. juni 2002 - 01:42 #29
if instr(1, ucase(oRs("sTitel"), ucase(strSearchfor))) then

skal være

if instr(1, ucase(oRs("sTitel")), ucase(strSearchfor)) then
Avatar billede baitianlong Nybegynder
13. juni 2002 - 01:47 #30
Gu' skal det SÅ.

http://www.legendenet.dk/legendarisk/lyrics/lyricsDB.asp?iType=1&strSearch=ca

-Mange tak for hjælpen. Så må jeg lige ændre lidt i menuerne i morgen
...det var rigtig godt at den kom til at virke. (((o;
Avatar billede pato Nybegynder
13. juni 2002 - 01:49 #31
ja....nu vil jeg også smutte i seng.. god arbejdslyst
Avatar billede baitianlong Nybegynder
13. juni 2002 - 01:53 #32
Jeg skal også i seng. Jeg ville bare have den funktion færdig. -Det kender du nok !
Vi snakkes - Fed hjælp (o;
Avatar billede pato Nybegynder
18. juni 2002 - 20:37 #33
Takker for points :-)
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