dinsdag 25 oktober 2011

zoekmachine

Zoekmachine voor je website maken

Websites van tegenwoordig worden steeds flitsender en mooier. Alles kan niet snel genoeg gaan en je bezoekers willen alles met 1 of 2 klikjes hebben wat ze willen op je website. Maar hoe zorgen we dat de bezoekers van een website alles kunnen vinden wat ze zoeken? Heel simpel, en best wel logisch: door een zoekmachine te maken voor je website. Dat klinkt heel simpel, maar blijkbaar zijn veel mensen niet in staat om er eentje te maken, of eentje op maat te vinden voor hun website op het internet.

Daarom laat ik je hier zien hoe je een eenvoudige zoekmachine kunt maken voor je website.

Als webmaster van een website denk ik dat je tenminste al vertrouwd bent met de basis van HTML. Als dat niet zo is neem dan eens een kijkje op W3Schools.com. Hier vind je naast een gratis basiscursus voor HTML ook cursussen voor PHP, MySQL (we gebruiken ook zowel PHP en MySQL in dit artikel) en nog veel meer.

Maar dus: Hoe maak je een zoekmachine? Ik zal stap voor stap uitleg geven bij wat ik doe.

Je begint bij het begin: het invoervakje en de zoekknop op je website om iets te zoeken.

<form action="zoeken.php" method="get"><input type="text" name="search"/><input type="submit" value="Zoeken!" /></form>

Wat wilt dit nu allemaal zeggen?

Action is de pagina waar je naartoe gaat nadat je op de zoekknop hebt geklikt. (dit wordt de pagina met je zoekresultaten!)

Method is de manier waarop je zoekopdracht wordt verstuurd. Hierover later meer.

De rest moet zo een beetje duidelijk zijn.

Wat we nu moeten doen is een soort tabel maken met alle pagina's, afbeeldingen, bestanden die gezocht moeten worden. Deze tabel noemen we een database. Hier gebruiken we een MySQL database.

Om alles een beetje simpel te houden ga ik hier nu niet al te technisch werken en met een handig programma werken dat je gratis kan downloaden, namelijk MySQL Workbench. Hiermee kan je visueel je tabellen maken en invullen ipv. dit met computercode te doen. Workbench is tamelijk eenvoudig en heb je zo onder de knie!

Uiteindelijk willen we een tabel die er zo uitziet hebben.

(ik gebruik nu wat vershillende soorten fruit als voorbeeldje)

_________________________________

| Id | Name    | Color      | Image |

| 1  | banaan  | geel       |a.jpg    |

| 2  | appel     | rood       |b.jpg    |

| 3  | peer      | groen      |c.jpg    |

| 4  | aardbij   | rood       |d.jpg    |

| 5  | kiwi       | groen      |e.jpg    |

Nu meer over die pagina "zoeken.php" en de method.

Als je nu zou proberen iets te zoeken met dat formuliertje wat je net hebt gemaakt zal je nog niet veel vinden. Als je nu bv. "banaan" gaat intikken en zoeken gaat je webbrowser naar de pagina www.mijnwebsite.com/zoeken.php?search=banaan gaan.

de GET-methode van je zoekvenster geeft je zoekopdracht door via het webadres want het venstertje met de naam search staat mooi in het webadres samen met de zoekopdracht.

Wat zetten we in die pagina zodat hij mooi naar je zoekterm zoekt in je database?

Hier beginnen we met PHP en MySQL!

<?php

$search = $_GET['search'];

$search = mysql_real_escape_string($search);

mysql_connect("localhost","jan","abc123") or die(mysql_error());

mysql_select_db("Fruitdatabase") or die(mysql_error());

$data = mysql_query("SELECT * FROM Fruit WHERE Name = '%$search%' OR Color = '%$search%' ");

while($result = mysql_fetch_array( $data )){echo $result['Name'].": ".$result['Image']."</br>";}

?>

Wat betekent dit nu allemaal weer?

$search = $_GET['search'];

-We zorgen eerst dat we onze zoekterm bij de hand hebben. We slaan hem op in een variabele met de naam $search.

$search = mysql_real_escape_string($search);

-Dit is een handige functie om te zorgen dat er via je zoekopdracht niet in je database gehackt kan worden door hackers die je website overhoop willen gooien. Het is echt héél belangrijk dat je deze beveiliging gebruikt!!!

mysql_connect("localhost","jan","abc123") or die(mysql_error());

-We verbinden met het MySQL programma op de sever van onze website. Localhost is meestal de locatie van dat programma, jan is hier mijn inlognaam en abc123 mijn paswoord. (Wees gerust, PHP is een "serverside-language", wat wil zeggen dat alleen je server dit ziet. Je bezoekers zullen dus nooit aan je wachtwoord of inlognaam kunnen komen)

mysql_select_db("Fruitdatabase") or die(mysql_error());

-Je selecteert de database die ik fruitdatabase heb genoemd.

$data = mysql_query("SELECT * FROM Fruit WHERE Name = '%$search%' OR Color = '%$search%' ");

-Hier gebeurt het eigenlijke opzoekwerk. We selecteren alle kollommen in de rijen waar onze zoekopdracht ofwel gelijk is aan de naam ofwel aan de kleur van ons fruit.

while($result = mysql_fetch_array( $data )){echo $result['Name'].": ".$result['Image']."</br>";}

-Zolang we een nieuw resultaat vinden while($result = mysql_fetch_array( $data ))

 geven we die resultaten weer {echo $result['Name'].": ".$result['Image']."</br>";}

 

En nu hebben we een héél simpele zoekmachine voor onze website geschreven. Als we nu bijvoorbeeld gaan zoeken naar het woord appel krijgen we dit als antwoord:

appel: b.jpg

Als we zouden zoeken naar de kleur groen krijgen we dit:

peer: c.jpg

kiwi: e.jpg




Dit is een héél simpel voorbeeld van een zoekmachine en is gewoon bedoeld om je bekend te maken met het basisprincipe. Met een beetje verbeelding kan je dit systeem uitbreiden door bijvoorbeeld de volgorde van de zoekresultaten aanpasbaar te maken.



Een voorbeeld van dit soort zoekmachine kan je uitproberen op FreeGamesViking.com

 

--
Over de auteur

Zobator is een jonge webmaster die houdt van met computers bezig te zijn.

Geen opmerkingen:

Een reactie posten