Avatar billede jthyge Seniormester
17. december 2002 - 20:45 Der er 14 kommentarer og
1 løsning

Lave søge funktion og indput!!

Hej

Jeg vil lave en side hvor man som bruger kan indtaste sine oplysniger, og andre så derefter kan søge efter en!

Jeg skal derfor bruge en side der kan sende indformationer til Databasen, og en side hvor man kan søge i databasen.

Data basen ligger her... www.livgarden.net/brugere.mdb

Man skal kunne søge i følgende felter..

Soldaternr
år
måned
navn
Kompagni

Men kun med et søgefelt.

Søgeresultatet skal komme ud med 10 svar pr side, altså flere sider hvis der er fundet flere end 10 personer med samme keriterier.

Det jeg vil er at forbedre denne søgefunktion...
http://www.livgarden.net/Findgarden/searchmain.asp

Håber der er nogen der keder sig, for jeg kan ikke selv overskue at sætte mig ind i alt det!

Med Venlig Hilsen
Jthyge
Avatar billede eagleeye Praktikant
19. december 2002 - 12:24 #1
Jeg vil gerne prøve at hjælpe og lave koden, men det bliver nok først i weekenden jeg får tid til at lave det.
Avatar billede jthyge Seniormester
19. december 2002 - 13:35 #2
Det lyder da rigtigt dejligt... :-)
Avatar billede eagleeye Praktikant
21. december 2002 - 02:12 #3
Her er et eks hvor det er delt op i to sider.. En søge side med en form på og en side som viser resultet her i formen kaldet vis.asp


<html>
<head>
<title></title>
</head>
<body>
<table>
<form action="vis.asp" method="post">
<tr><td><input type="text" name="sogord"></td></tr>
<tr><td><input type="submit" name="sog" value="sog"></td></tr>
</form>
</table>
</body>
</html>
Avatar billede eagleeye Praktikant
21. december 2002 - 02:13 #4
Filen vis.asp skal se sådan her ud. Den er med paging hvor den viser 10 pr side samt den søger de felter du har skrevet i spørgsmålet (Soldaternr, år, måned, navn, Kompagni):



<html>
<head>
<title></title>
</head>
<body>

<%
intPage = Request("page")
if isNumeric(intPage) = false OR intPage < 1 then
  intPage = 1
end if
keyword = Request.Form("sogord")
if keyword = "" then keyword = Request.QueryString("sogord")
keyword = Replace (""&keyword,"'","''")

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("brugere.mdb")
set Conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.RecordSet")
Conn.Open strConn

'Tilføj søgning på soldaternr hvis der er indtastet et tal
if isNumeric(keyword) then
  SQLWhere = "Soldaternr = " & keyword
end if
'Tilføj søgning på år hvis der er indtastet et tal
if isNumeric(keyword) then
  if SQLWhere <> "" then SQLWhere = SQLWhere & " OR "
  SQLWhere = SQLWhere & " [år] = " & keyword
end if
'Tilføj søgning på måned
if SQLWhere <> "" then SQLWhere = SQLWhere & " OR "
SQLWhere = SQLWhere & " [måned] LIKE '%" & keyword & "%'"
'Tilføj søgning på navn
if SQLWhere <> "" then SQLWhere = SQLWhere & " OR "
SQLWhere = SQLWhere & " [navn] LIKE '%" & keyword & "%'"
'Tilføj søgning på Kompagni
if SQLWhere <> "" then SQLWhere = SQLWhere & " OR "
SQLWhere = SQLWhere & " [Kompagni] LIKE '%" & keyword & "%'"

SQL = "SELECT * FROM gardere"
if SQLWhere <> "" then
  SQL = SQL & " WHERE " & SQLWhere
end if


rs.Open SQL, conn, 1
if Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 10
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
  Response.Write "<table align=""center"">"
  Response.Write "<tr>"
  Response.Write "<td colspan=""5"" align=""center"">"
  Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
  Response.Write "</tr>"
 
  Response.Write "<tr>"
  Response.Write "<td>Soldaternr</td>"
  Response.Write "<td>År</td>"
  Response.Write "<td>Måned</td>"
  Response.Write "<td>Navn</td>"
  Response.Write "<td>Kompagni</td>"
  Response.Write "</tr>"
  Do While Not rs.EOF And intRecCount > 0
    Response.Write "<tr>"
    Response.Write "<td>" & rs("Soldaternr") & "</td>"
    Response.Write "<td>" & rs("År") & "</td>"
    Response.Write "<td>" & rs("Måned") & "</td>"
    Response.Write "<td>" & rs("Navn") & "</td>"
    Response.Write "<td>" & rs("Kompagni") & "<td>"
    Response.Write "</tr>"
   
    intRecCount = intRecCount - 1
    rs.MoveNext
  Loop

  keyword = replace(keyword,"''","'")

  Response.Write "<tr>"
  Response.Write "<td colspan=""5"" align=""center"">"
  Response.Write "Gå til side "
  For intNum = 1 To intPageCount
    Response.Write "<a href=?page=" & intNum & "&sogord=" & keyword & ">" & intNum & "</a> "
  Next

  Response.Write "<p>"
  if Clng(intPage) > 1 Then
    Response.Write "<a href=?page=" & intPage - 1 & "&sogord=" & keyword & ">Forrige</a>"
  else
    Response.Write "Forrige"
  end if

  Response.Write " | "

  if Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=?page=" & intPage + 1 & "&sogord=" & keyword & ">Næste</a> "
  else
    Response.Write "Næste"
  end if
  Response.Write "</tr>"
  Response.Write "</table>"
Else
  Response.Write "<table align=""center"">"
  Response.Write "<tr>"
  Response.Write "<td>Fandt inden på denne søgning!</td>"
  Response.Write "</tr>"
  Response.Write "</table>"
End If
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
%>
</body>
</html>
Avatar billede jthyge Seniormester
22. december 2002 - 20:29 #5
Kanon... Det ser sgu godt ud!! Har lige ændret det så den udskriver alle poster i databasen undtagen password!! Men så vil jeg lige høre om det er muligt at Resultatet kommer til at se ud nogenlunde som dette...

Navn Vej            Soldaternr    Email  Fødselsdato  Kompagni/Bataljon
    Postnummer By  Måned/år      Telefon

Eller noget lignende?? Så søge resultatet bliver mere overskueligt??
Avatar billede jthyge Seniormester
03. januar 2003 - 17:39 #6
-->eagleeye

Vil du også forsøge med resten eller skal jeg åbne et nyt spørgsmål??'

Med Venlig Hilsen

Jthyge
Avatar billede eagleeye Praktikant
05. januar 2003 - 14:16 #7
Ja det skulle være mulig bare kolonnenavne er kendte kan du udskrive det som du vil. Beklager men jeg har ikke fået en mail før din sidste kommentar, der er vist lidt problemmer med eksperten i øjeblikket..

Jeg vil forsøge med det.
Avatar billede eagleeye Praktikant
07. januar 2003 - 00:07 #8
Jeg ved ikke helt om jeg forstår det rigtigt men du vil havde det i 5 kolonner ?
Avatar billede eagleeye Praktikant
07. januar 2003 - 00:08 #9
arh nu jeg med 6 kolonner

Navn Vej            Soldaternr    Email  Fødselsdato  Kompagni/Bataljon
      Postnummer By  Måned/år      Telefon
Avatar billede eagleeye Praktikant
07. januar 2003 - 00:15 #10
Her er hele tabellen til og med loopet det kan dui prøve at sætte ind:


  Response.Write "<table align=""center"">"
  Response.Write "<tr>"
  Response.Write "<td colspan=""6"" align=""center"">"
  Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
  Response.Write "</tr>"
   
  Response.Write "<tr>"
  Response.Write "<td>Navn</td>"
  Response.Write "<td>Adress</td>"
  Response.Write "<td>Soldaternr</td>"
  Response.Write "<td>Email</td>"
  Response.Write "<td>Fødelsdato</td>"
  Response.Write "<td>Kompagni/Bataljon</td>"
  Response.Write "</tr>"
  Do While Not rs.EOF And intRecCount > 0
    Response.Write "<tr>"
    '1. Først kolonne navn
    Response.Write "<td>" & rs("Navn") & "</td>"
    '2. kolonne med adresse
    Response.Write "<td>" & rs("Vej") & "<br>"
    Response.Write rs("postnummer") & rs("bynavn")
    Response.Write "</td>
    '3. kolonne med soldaternr mm
    Response.Write "<td>" & rs("Soldaternr") & "<br>"
    Response.Write rs("Måned") & "/" & rs("År")
    Response.Write "</td>
    '4. kolonne med adresse
    Response.Write "<td>" & rs("Email") & "<br>"
    Response.Write rs("telefon")
    Response.Write "</td>
    '5. kolonne med fødseldsdag
    Response.Write "<td>" & rs("fodselsdag") & "<td>"
    '6 kolonne med kampagin/bataljon
    Response.Write "<td>" & rs("Kompagni") & "/" & rs("Bataljon") & "<td>"
    Response.Write "</tr>"
   
    intRecCount = intRecCount - 1
    rs.MoveNext
  Loop



Du må lige tjekke op med databasen at det er de rigtige kolonne navn jeg har skrevet de steder der står noget med rs("XXXX")  så skal XXXX kunne findes i tabellen.
Avatar billede eagleeye Praktikant
07. januar 2003 - 00:16 #11
Så kan jeg se den første fejl der er nogle linier som denne (3 ialt):
Response.Write "</td>

De mangler et " til slut sådan her:
Response.Write "</td>"
Avatar billede jthyge Seniormester
15. januar 2003 - 15:30 #12
Det er virkeligt godt :-)
Jeg har bare lige et lille spørgsmål...

Hvordan får jeg Kompagni/Bataljon til at stå under hinanden?

'6 kolonne med kampagin/bataljon
    Response.Write "<td>" & rs("Kompagni") & "/" & rs("Bataljon") & "<td>"
    Response.Write "</tr>"

Det må være pga / at de flytter sig!!

For eks http://www.livgarden.net/livgardenV2/find/indset.asp og søg på Blicher

En gald Jthyge
Avatar billede jthyge Seniormester
15. januar 2003 - 15:31 #13
En Glad Jthyge... :-)
Avatar billede eagleeye Praktikant
15. januar 2003 - 18:51 #14
Hvis de skal stå under hinanden kan du lave et linie skift med <br> i HTML.

Grunden til layoutet er der er nogle <td> som skulle være </td> Prøv med denne kode for loopet her er / lavet om til <br> mellem kompagni og bataljon:



  Do While Not rs.EOF And intRecCount > 0
    Response.Write "<tr>"
    '1. Først kolonne navn
    Response.Write "<td>" & rs("Navn") & "</td>"
    '2. kolonne med adresse
    Response.Write "<td>" & rs("Vej") & "<br>"
    Response.Write rs("postnummer") & rs("bynavn")
    Response.Write "</td>
    '3. kolonne med soldaternr mm
    Response.Write "<td>" & rs("Soldaternr") & "<br>"
    Response.Write rs("Måned") & "/" & rs("År")
    Response.Write "</td>"
    '4. kolonne med adresse
    Response.Write "<td>" & rs("Email") & "<br>"
    Response.Write rs("telefon")
    Response.Write "</td>"
    '5. kolonne med fødseldsdag
    Response.Write "<td>" & rs("fodselsdag") & "</td>"
    '6 kolonne med kampagin/bataljon
    Response.Write "<td>" & rs("Kompagni") & "<br>" & rs("Bataljon") & "</td>"
    Response.Write "</tr>"
   
    intRecCount = intRecCount - 1
    rs.MoveNext
  Loop
Avatar billede jthyge Seniormester
15. januar 2003 - 19:05 #15
Okey Mange tak for det.. Det kan være jeg vender tilbage senere med et par "?"

Jthyge :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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