Avatar billede steckel Nybegynder
15. januar 2004 - 22:43 Der er 11 kommentarer og
1 løsning

Har problemer igen med søgmenu. nu med rækker

Nu er det sådan at alt hvad jeg søger kommer frem som jeg gerne vil have det... Men nogle gange kommer der rigtig meget frem, så tænkte på om ikke der var en eller anden smart måde hvor på man f.eks kan få vist 3 rækker med 3 rasultater i hver række.

Sådan ser søgning koden ud :

<%
str = Request.Form("keyword")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/log/2003.mdb")

arr = Split(str," ")
sqlWhere = ""
for i = lbound(arr) to ubound(arr)
  if sqlWhere <> "" then sqlWhere = sqlWhere & " OR "
  sqlWhere = sqlWhere & "(ForNavn LIKE '%" & arr(i) & "%'"
  sqlWhere = sqlWhere & " OR MellemNavn LIKE '%" & arr(i) & "%'"
  sqlWhere = sqlWhere & " OR EfterNavn LIKE '%" & arr(i) & "%'"
  sqlWhere = sqlWhere & ")"
next

SQL = "select * from Elever"
if sqlWhere <> "" then SQL = SQL & " where " & sqlWhere

Set rs = Conn.Execute(SQL)

If Not (rs.BOF Or rs.EOF) Then
    ' Hvis der er fundet poster på søgningen
    Response.Write "<p>Søgeresultat</p>"
    Do While Not rs.EOF
        Response.Write "<tr><td>" & rs("ForNavn") & "</td>"
        Response.Write "<td>" & rs("MellemNavn") & "</td>"
        Response.Write "<td>" & rs("EfterNavn") & "</td></tr>"
        rs.MoveNext
    Loop
    Response.Write "</table>"
Else
    ' Hvis der ikke er fundet poster på søgningen
    Response.Write "<p>Der er ikke fundet noget på denne søgning</p>"
End If

' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>
Avatar billede steckel Nybegynder
15. januar 2004 - 22:44 #1
Og hvis der er mere en 3*3 = 9 resultatere der bliver vist så kommer der et link hvor jeg kan trykke til næste side og se de andre..
Avatar billede Slettet bruger
15. januar 2004 - 22:51 #2
Avatar billede dittlau Nybegynder
15. januar 2004 - 22:58 #3
Prøv at se her for udtræk i 3 spalter - http://www.eksperten.dk/spm/376620, og her for paging - http://www.eksperten.dk/spm/379562 (er til MySQL). De to ting skal du bare have flettet sammen og tilrettet.

/dittlau
Avatar billede steckel Nybegynder
15. januar 2004 - 22:59 #4
Ja men nu er det bare sådan at jeg ikke kan få det til at passe ind i den kode jeg har skrevet ind her... Den vil ikke virke der til... :(
Avatar billede eagleeye Praktikant
15. januar 2004 - 23:17 #5
Som de andre skriver skal man blande de to lidt, samt huske at overføre søge strengen.


<%

intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

str = Request.Form("keyword")
if str = "" then str = Request.QueryString("keyword")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/log/2003.mdb")

arr = Split(str," ")
sqlWhere = ""
for i = lbound(arr) to ubound(arr)
  if sqlWhere <> "" then sqlWhere = sqlWhere & " OR "
  sqlWhere = sqlWhere & "(ForNavn LIKE '%" & arr(i) & "%'"
  sqlWhere = sqlWhere & " OR MellemNavn LIKE '%" & arr(i) & "%'"
  sqlWhere = sqlWhere & " OR EfterNavn LIKE '%" & arr(i) & "%'"
  sqlWhere = sqlWhere & ")"
next

Set rs = Server.CreateObject("ADODB.recordset")

SQL = "select * from Elever"
if sqlWhere <> "" then SQL = SQL & " where " & sqlWhere

rs.Open SQL, Conn, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 9
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    ' Hvis der er fundet poster på søgningen
    Response.Write "<p>Søgeresultat</p>"
    antal = 0
    maxPrRow = 3
    Do While Not rs.EOF And intRecCount > 0
      if antal = 0 then Response.Write "<tr><td><table>"

      Response.Write "<tr><td>" & rs("ForNavn") & "</td>"
      Response.Write "<td>" & rs("MellemNavn") & "</td>"
      Response.Write "<td>" & rs("EfterNavn") & "</td></tr>"

      antal = antal + 1
      if antal = maxPrRow then
        Response.Write "</table></td></tr>"
        antal = 0
      end if
      intRecCount = intRecCount - 1
      rs.MoveNext
    Loop
    Response.Write "</table>"

  'paging udskriv links
  Response.Write "<p>Gå til side "
  For intNum = 1 To intPageCount
    Response.Write "<a href=?page=" & intNum & "&keyword=" & Server.URLencode(str) & ">" & intNum & "</a> "
  Next

  Response.Write "<p>"
  If Clng(intPage) > 1 Then
    Response.Write "<a href=?page=" & intPage - 1 & "&keyword=" & Server.URLencode(str) & ">&lt;&lt;</a>"
  Else
    Response.Write "&lt;&lt;"
  End If

  Response.Write "&nbsp;"

  If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=paging.asp?page=" & intPage + 1 & "&keyword=" & Server.URLencode(str) & ">&gt;&gt;</a> "
  Else
    Response.Write "&gt;&gt;"
  End If


Else
    ' Hvis der ikke er fundet poster på søgningen
    Response.Write "<p>Der er ikke fundet noget på denne søgning</p>"
End If

' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>
Avatar billede eagleeye Praktikant
15. januar 2004 - 23:23 #6
Jeg smutter for i aften.. Så du må prøve at rode lidt med det ;)
Avatar billede steckel Nybegynder
16. januar 2004 - 11:24 #7
Det virker næsten fint. Der er bare et lille problem.
Og jeg kan ikke selv finde fejlen. Den finde de rasultater men nu søger efter, men når man gerne vil se den næste side, så kommer den tilbage til søgemenuen.
Så her kommer lige koden igen. ::

<%

intPage = Request("sider")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

str = Request.Form("keyword")
if str = "" then
Response.Write "<table border='0'>"
Response.Write "<tr><td align='center' valign='top'>"
Response.Write "<center><p style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'><b>Søg efter elever.</b></font></center>"
Response.Write "</td></tr>"
Response.Write "<tr><td align='center' valign='top'>"
Response.Write "<form action='/sider/søg.asp' method='POST'>"
Response.Write "<input type='text' name='keyword' size='30'><br>"
Response.Write "<input type='submit' name='Action' value='Søg'>"
Response.Write "</form>"
Response.Write "</td></tr>"
Response.Write "</table>"
elseif str <> "" then

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/log/2003.mdb")

arr = Split(str," ")
sqlWhere = ""
for i = lbound(arr) to ubound(arr)
  if sqlWhere <> "" then sqlWhere = sqlWhere & " OR "
  sqlWhere = sqlWhere & "(ForNavn LIKE '%" & arr(i) & "%'"
  sqlWhere = sqlWhere & " OR MellemNavn LIKE '%" & arr(i) & "%'"
  sqlWhere = sqlWhere & " OR EfterNavn LIKE '%" & arr(i) & "%'"
  sqlWhere = sqlWhere & ")"
next

Set rs = Server.CreateObject("ADODB.recordset")

SQL = "select * from Elever"
if sqlWhere <> "" then SQL = SQL & " where " & sqlWhere & " order by KlasseNr"

rs.Open SQL, Conn, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 9
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    ' Hvis der er fundet poster på søgningen
    Response.Write "<table border='0' width='100%'><tr>"
    Response.Write "<td align='left' valign='top'><p style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'><b>Søgeresultat med " & Str & "</b></font></p></td>"
    Response.Write "<td align='right' valign='top'><p style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'><b>Side " & intPage & " af " & intPageCount & "</b></font></p></td>"
    Response.Write "</tr></table>"
    Response.Write "<table>"
    antal = 0
    maxPrRow = 3
    Do While Not rs.EOF And intRecCount > 0
      if antal = 0 then Response.Write "<tr>"

    klasse_x = rs("KlasseNr")
    x_ID = rs("ID")
    x_link = rs("link")
    x_fornavn = rs("ForNavn")
    x_mellemnavn = rs("mellemnavn")
    x_efternavn = rs("EfterNavn")
    strVis = rs("visbillede")
   
    x_table = 190
    billede_td = 35
   
    x_td1 = x_table - billede_td

  response.write "<td width='33%' align='center' valign='top'>"
  response.write "<table border='0' width='" & x_table & "'><tr><td width='" & x_td1 & "' bgcolor='#DDE4E7'>"
  response.write "<p style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'>" & x_fornavn & "&nbsp;" & x_efternavn & "</font></td>"
  response.write "<td width='" & billede_td & "' rowspan='2' bgcolor='#DDE4E7' align='center'>"
  response.write "<p align='center' style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'>"
if strVis = "ja" then
  Response.Write "<a href='#' onClick=MM_openBrWindow('/sider/visbillede.asp?ID=" & x_ID & "','billede_" & x_fornavn & "','width=225,height=336')>"
end if
  Response.Write "<img border='0' src='http://www.hhx.dk/sider/pics/"
 
If strVis = "ja" then
  Response.Write "HH" & klasse_x & "/HH" & klasse_x & "_"
  Response.Write "" & x_fornavn & ""
if x_mellemnavn <> "" then
  Response.Write " " & x_mellemnavn & ""
end if
if  x_efternavn <> "" then
  Response.Write " " & x_efternavn & ""
end if
  Response.Write ".jpg"
 
elseif strVis = "nej" then
  Response.Write "intet.jpg"
else
  Response.Write "onway.jpg"
end if

  Response.Write "' width='35' height='52'>"
if strVis = "ja" then
  Response.Write "</a>"
end if
  Response.Write "</font></td>"
  response.write "</tr><tr>"
  response.write "<td width='" & x_td1 & "' bgcolor='#FFFFFF'><p style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'>"
  Response.Write "<a href='http://www.hhx.dk/hhx" & klasse_x & "/hhx" & klasse_x & "" & rs("link") & "' title='Se " & x_fornavn & "´s hjemmeside' target='_blank'>HHX" & klasse_x & "" & rs("link") & "</a></font></p>"
  response.write "<p style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'>"
  Response.Write "<a href='mailto:hhx" & klasse_x & "" & x_link & "@edu.selandia-ceu.dk' title='Mail til " & x_fornavn & "'>Mail</a></font></td>"
  response.write "</tr></table>"
  response.write "</td>"

      antal = antal + 1
      if antal = maxPrRow then
        Response.Write "</tr>"
        antal = 0
      end if
      intRecCount = intRecCount - 1
      rs.MoveNext
    Loop
    Response.Write "</table>"

  'paging udskriv links
  Response.Write "<center><p style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'>Gå til side<br>| "
  For intNum = 1 To intPageCount
    Response.Write "<a href=/sider/søg.asp?keyword=" & Server.URLencode(str) & "&sider=" & intNum & ">" & intNum & "</a> | "
  Next

Response.Write "</font></center><center><p style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'>"
  If Clng(intPage) > 1 Then
    Response.Write "<a href=/sider/søg.asp?keyword=" & Server.URLencode(str) & "&sider=" & intPage - 1 & ">&lt;&lt;</a>"
  Else
    Response.Write "&lt;&lt;"
  End If

  Response.Write "&nbsp;"

  If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=/sider/søg.asp?keyword=" & Server.URLencode(str) & "&sider=" & intPage + 1 & ">&gt;&gt;</a> "
  Else
    Response.Write "&gt;&gt;"
  End If
Response.Write "<br>"
Response.Write "<a href='/sider/søg.asp'>Ny søgning</a>"
Response.Write "</font></center>"

Else
    ' Hvis der ikke er fundet poster på søgningen
    Response.Write "<p style='word-spacing: 0; margin: 0'><font face='Verdana' size='1'>"
    Response.Write "Der er ikke fundet noget på denne søgning</font><br>"
    Response.Write "Prøv igen<br>"
    Response.Write "<form action='/sider/søg.asp' method='POST'>"
    Response.Write "<input type='text' name='keyword' size='30'><br>"
    Response.Write "<input type='submit' name='Action' value='Søg'>"
    Response.Write "</form>"
   
End If

' Rydder op efter os
Conn.Close
Set Conn = Nothing

end If
%>
Avatar billede steckel Nybegynder
16. januar 2004 - 12:18 #8
Når men nu har jeg fået rette den... Men det var ved at oprette en ny siden hvor jeg smider formen ind i...

Troede bare man kunne lave så det hele lå i en side...
Men prøver lige lidt endnu, for jeg vil sq have det på min måde...*G*
Avatar billede eagleeye Praktikant
16. januar 2004 - 15:18 #9
Det skulle også være muligt med en side..

Prøv at rettE:

str = Request.Form("keyword")

Til:

str = Request.Form("keyword")
if str = "" then str = Request.QueryString("keyword")
Avatar billede steckel Nybegynder
16. januar 2004 - 20:12 #10
Ja nu er serveren gået ned... :( så kan desværre ikke lige prøve det før på mandag... Men skriver lige når jeg engang får det prøvet... ;) Skriver også hvis jeg få det prøvet før...
Avatar billede steckel Nybegynder
22. januar 2004 - 21:52 #11
Okay eagleeye... du skal da lige have dine poin... ;) Sorry det tog så lang tid med at svare igen... :-s
Avatar billede eagleeye Praktikant
22. januar 2004 - 21:54 #12
Ok, det går nok ;))
Så laver jeg lige et svar.
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