Avatar billede ogodt Nybegynder
28. august 2008 - 13:53 Der er 20 kommentarer og
1 løsning

søgning til hjemmeside

Hej,

jeg er ved at lave min første hjemmeside og vil gerne have en søgefunktion ind med det samme(så den kan søge på mine 8 sider :-)

her er hvad jeg mangler:

1 en pæn overskuelig søgefunktion uden database og uden reklamer.

2. min hjemmeside bliver med html og asp (jeg er INGEN haj)

Er det noget der findes og kan laves.

Ole
Avatar billede fennec Nybegynder
28. august 2008 - 14:24 #1
Uden en database?? Ikke at det godt kan laves, men i længden ikke noget jeg vil anbefale.

1. Du har pt kun 8 sider (meget få sider). En søge funktion er næsten spild af tid.
2. Kommer du op i et antal sider, hvor en søgefunktion begynder at være relevant (+50 sider) er hardcoded sider ineffektiv at administrere. Der skal du over i et CMS system, ensbetydende med database.
3. En god menu struktur er stadig det bedste til mindre sites.

Så overvej lige en ekstra gang hvor mange sider du kommer op at have på dit site, inden vi begynder på en søge funktion, som alligevel skal ændres senere...
Avatar billede ogodt Nybegynder
28. august 2008 - 14:35 #2
Den skal nok komme over 50 sider på sigt og 8 er nok også lige i underkanten.

hvis der skal en database til så må der det (blot fordi jeg ikke er ekspert ville jeg ikke gøre det mere besværligt end højst nødvendigt)
Avatar billede fennec Nybegynder
28. august 2008 - 14:47 #3
Det er skam også kun for at hjælpe dig selv i fremtiden :o)

Forstil dig 50 hardcoded sider (med menu struktur). Du laver nu en ny side. Nu skal du så til at rette menuen på alle relevante sider. I værste tilfælde er det alle 50 sider. Bestemmer du dig en dag for at ændre lidt i designet = alle sider skal ændres.

Med få sider er et cms langt overkill, men til flere er det et must, da det bygger menu struktur, indeholder design osv.

Jeg ved der findes flere gratis CMS løsninger til ASP ude på nettet, men jeg har aldrig brugt dem (har bygget mit eget). De burde have en søge funktion indbygget, så jeg vil anbefale dig at skaffe sådan et. Jeg kan desværre ikke fortælle dig noget om hvilke der er gode, da jeg som sagt aldrig har brugt dem, men der findes sikkert et par tråde her på E om det.
Avatar billede fennec Nybegynder
28. august 2008 - 14:56 #4
Nu skriver du, at du ikke er en haj, men et CMS er faktisk meget simpel at lave. Det kræver kun at du kan kode ASP med database (ikke noget advanceret) og kender til database opbygning. Også selvfølgelig lidt viden om HTML :)

De fleste ASP tutorials har også eksempler med databaser (gerne Access) hvilket er mere end nok til et simpelt CMS.

Kan du ASP med database hjælper jeg dig gerne igang med at lave dit eget system.
Avatar billede fennec Nybegynder
28. august 2008 - 15:24 #5
Bare lige for at illustrere hvor sompelt et CMS kan være, så består det i sin allersimpleste for kun af:

En database med en tabel som har 4 kolonner (Id, ParentID, Title, Body).
En side i CMS'et til at vise menu strukturen, så man kan vælge de enkelte sider.
En/to/tre side(r) til at indsætte/redigere/slette data i tabellen (nogen samler dette i en fil).
En side til at vise data.

Så en database med en tabel og 5 simple ASP sider også er du kørende med dit eget CMS.

Vil du have en søgefunktion er det en ekstra side der skal tilføjes.
Avatar billede ogodt Nybegynder
28. august 2008 - 16:57 #6
jeg har lavet siderne med css og ssi, så jeg skulle gerne have styr på menu strukturen (nu håber jeg du er enig :-) jeg er i hvert tilfald "helt"
færdig med selve designet/opbygningen.

Det kunne godt være jeg skulle se om jeg kunne finde nogle asp tutorials med database, hvordan databasen bliver fyldt op med søgeord og hvordan det fungerer, forstår jeg ikke helt.

så hvis du kender nogle eksempler eller links vil jeg være taknemlig.
Avatar billede fennec Nybegynder
29. august 2008 - 08:29 #7
html.dk har en udemærket tutorial som tager det skridt for skridt. Punkt 17 og frem handler om databaser:
http://www.html.dk/tutorials/asp/

De har dog fået skrevet deres løkker på en uheldig måde. Det skal være sådan i stedet:

set rs = conn.execute("select * from enTabel")
do while not rs.eof
  response.write rs("enKolonne")
  rs.MoveNext
loop

("while" kaldet er flyttet fra "loop" til "do")
Avatar billede ogodt Nybegynder
29. august 2008 - 11:17 #8
nu har jeg skimtet artiklen igennem og kan godt se der er mange muligheder, men der er en ting jeg ikke fatter, hvis nu jeg har 10 sider hvor ordet "spanien" indgår, hvordan bliver DB opdateret, så når man søger på spanien kommer der et resultat frem med de 10 sider.
Avatar billede fennec Nybegynder
29. august 2008 - 11:34 #9
Der bruger man en "like" søgning:
set rs = conn.execute("select * from enTabel where enKolonne like '%spanien%'")

Bemærk at databaser bruge % som wildcard i stedet for det normal kendte *.
Avatar billede ogodt Nybegynder
29. august 2008 - 11:40 #10
men det vil sige jeg skal til at definere hvert søgeord, hvis jeg laver en ny side hvor feks. tyskland indgår for første gang på sitet, så skal jeg definere ordet i DB.

ja, jeg fatter det ikke helt ;-)
Avatar billede fennec Nybegynder
29. august 2008 - 11:53 #11
Næh nej. Du ligger alle dine sider ind i databasen, også klare den resten for dig.

Din database består af en tabel med 4 kolonner:
[pages]
Id, parentId, title, body

Data heri er så det der faktisk skal stå på din side. Noget i denne stil:
1, NULL, "Forside", "Dette er min forside<br>Her står noget tekst"
2, NULL, "Om Mig", "Jeg hedder ..."
3, 2, "Mere om mig", "Jeg intressere mig for ..."

Så laver du en side (som indeholder dit layout) og som udtrækker data fra databasen. Jeg har lavet et hurtigt eks her med menu struktur, som er det mest advanceret:

<% @LANGUAGE = VBScript %><% Option Explicit %><%
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
session.lcid = 1030

'Erklær variabler
dim Conn, DSN, rs, ID

'opsæt database forbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

'Find sideID'et ellers sæt til default forside
if not isnumeric(request.querystring("ID")) then ID = 1 else ID = cLng(request.querystring("ID"))

%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Min side</title>
</head>
<body>
<table cellpadding="0" cellspacing="0" width="100%" border="1">
<tr>
    <td colspan="2">Et Top billed</td>
</tr>
<tr>
    <td width="200"><% call makeMenu("", "") %></td>
    <td><% set rs = conn.execute("select * from pages where ID="& ID)
            response.write rs("body") %></td>
</tr>
</table>
<%
conn.close

'Funktion til at lave en menu struktur
function makeMenu(fID, fMoveIn)
dim fRS
    if fID = "" then
        set fRS = conn.execute("selct * from pages where parentID is NULL")
    else
        set fRS = conn.execute("selct * from pages where parentID="& cLng(fID))
    end if
    while not fRS.eof
        response.write fMoveIn & "<a href=""index.asp?ID="& fRS("ID") &""">"& fRS("title") &"</a><br>"
        call makeMenu(fRS("ID"), fMoveIn&"-")
        fRS.MoveNext
    wend
end function

%>

</body>
</html>


Prøv at lave en datadase med de værdier jeg angav tidligere og brug den så sammen med den kode jeg har angivet.
Avatar billede fennec Nybegynder
29. august 2008 - 11:55 #12
Ved du hvad. Jeg lavet lige et eks til dig du kan hente. Det er vist nemmere :)
Avatar billede fennec Nybegynder
29. august 2008 - 12:13 #13
Se hvordan det fungere her:
http://henriknygaard.dk/experten/843379/index.asp

Det består kun af en fil og en database. Kan hentes her:
http://henriknygaard.dk/experten/843379/hentmig.zip
Avatar billede fennec Nybegynder
29. august 2008 - 12:28 #14
Jeg har lige lavet en ny med søgefunktion også...
Samme sted samme zipfil.
Avatar billede ogodt Nybegynder
29. august 2008 - 12:44 #15
Det ser rigtig godt ud, og hvis så du lavede en ny side som feks. hed "endnu mere om mig" så vil indhold selv blive opdatere i DB ? for så er den jo genial
Avatar billede fennec Nybegynder
29. august 2008 - 13:17 #16
Men laver ikke en ny side (forstået som en ny HTML fil) i et CMS. Man indsætter bare en ny række i databasen.

Hvis du har koden kørende hos dig, så prøv at åbne databsen og indsætte en ny linje i "pages" tabellen. Luk så databasen igen og se hvad der er sket på siden. Det er altså fuldstændig slut med at kode HTML filer fra bunden. Nu koncentrere man sig kun om data inholdet (som dog også kræver lidt HTML kode)
Avatar billede ogodt Nybegynder
29. august 2008 - 13:47 #17
ahh, nu begynder jeg at forstå hvordan det virker, vi er enige om at bodyfeltet kan blive frygteligt langt ikk!

Jeg har ikke helt fået det til at køre endnu den kommer med:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver]Der opstod en generel fejl. Registreringsnøglen Temporary (volatile) Jet DSN for process 0xa88 Thread 0x1554 DBC 0x1292bdc Jet kan ikke åbnes.
/index.asp, line 13

jeg prøver og kigge på det og vender tilbage (måske først efter weekenden)

tusind tak for hjælpen indtil nu.
Avatar billede fennec Nybegynder
29. august 2008 - 14:12 #18
Yep. Body feltet kan blive meget lang. Det er også derfor det er sat som notat felt i databasen (kan vist nok indeholde omkring 4 mill tegn), hvilket netop gør at man kan skrive alt det man vil.

Har du husket at lukke Access programmet ned igen hvis du har editeret i data??
Access er single user, hvilket betyder at kun en windows bruger kan have adgang af gangen, så har du den åben kan IIS'ens bruger ikke få adgang (selv om der er 1000 besøgende på din side, bruger IIS'en den samme bruger, så de kan godt alle hente data samtidig).
Avatar billede fennec Nybegynder
02. september 2008 - 08:06 #19
Har du fået det til at virke??
Avatar billede ogodt Nybegynder
04. september 2008 - 11:09 #20
nej, jeg har været ude af byen i nogle dage, men jeg forsøgte i weekenden og kunne ikke få det til at virke, hverken på webhotellet eller privat, jeg har så i mellemtiden haft kigget på http://www.wrensoft.com/zoom/ og den fungerer faktisk rigtig godt til en billig pris og ikke noget med månedlige gebyrer, så lige nu hælder jeg til den, din løsning virker god/rigtig, men jeg synes jeg har godt styr på opbygningen af sitet med SSI på menu/billeder/etc. Og føler mig ikke frisk på din løsning lige nu.

Men hvis du vil sende et svar vil jeg meget gerne give dig point for din hjælp, jeg blev om ikke andet meget klogere og det er sikkert ikke sidste gang jeg skal have hjælp :-)

Ole
Avatar billede fennec Nybegynder
04. september 2008 - 11:21 #21
Helt i orden. Zoom ser intresant ud, og den kan sikkert også opfylde dine behov, så jeg kan godt forstå du går den vej. Jeg kan bare bedre lide at lave sådan noget selv, men der er vi jo (heldigvis) alle forskellige :o)

.o) <-- One Eyed Jack
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