Zoekfunctie aanmaken
Ik wil graag een goedwerkende zoekfunctie op een site waar ik mee bezig ben.
PHP ben ik (nog) niet zo handig in, databases ook niet.
Nu heb ik me laten vertellen dat het allemaal niet zo moeilijk is, maar ik kom er dus zo 1,2,3 niet uit.
Ik ben dus op zoek naar iemand die voor mij een zoekfunctie kan maken voor deze site.
Ik wil er echter wel graag van leren, dus zou graag willen dat ik er wat uitleg bij kan krijgen. Ik ben tenslotte ook degene die de site gaat bijhouden en uitbreiden. En ik wil het in het vervolg ook graag zelf kunnen.
Natuurlijk staat er wat tegenover. Geen idee hoeveel werk het exact is, dus dit moeten we maar even overleggen.
Is er iemand die dit wil en vooral kan doen?
Dit is de site in wording: http://www.pukt.nl/ditco/index.php
Ik hoor het wel.
Welke database gebruik je en hoe ziet het datamodel eruit? Zonder deze gegevens kan niemand iets voor je betekenen.
Ik heb geen idee. Mijn server heeft MySQL.
Voorlopig heb ik nog geen database. Enkel een site in html/css
Zoek.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
include('config.php');
// Variabele voor de ingevoerde zoekterm:
$trefwoord = "";
// Variabele voor titel van de webpagina:
$paginatitel = "Zoeken";
// Variabele voor (fout)meldingen:
$melding = "<p>Typ een trefwoord in het invoervak en klik op de knop Zoeken.</p>";
// Ordernummer doorgeven als sessie-id (sid) in URL's:
if (isset($_GET['sid'])) {
$url1 = "?sid=" . $_GET['sid'];
$url2 = "" . $_GET['sid'];
} else {
$url1 = "";
$url2 = "$trefwoord";
}
if (isset($_GET['woord'])) {
$trefwoord = $_GET['woord']; // Trefwoord uit het vak 'q'
$trefwoord = strip_tags($trefwoord); // Tags en code verwijderen
$trefwoord = trim($trefwoord); // Witruimte verwijderen
// Zoeken alleen starten als er een trefwoord is ingevoerd:
if (strlen($trefwoord) > 1) {
// MySQL-selectiequery met reguliere expressies:
$sql = 'SELECT `paginaid`, `titel`, `content` ';
$sql .= 'FROM `content` ';
$sql .= 'WHERE `titel` REGEXP "' . $trefwoord . '" ';
$sql .= 'OR `content` REGEXP "' . $trefwoord . '" ';
$sql .= 'ORDER BY `paginaid` DESC ';
// Databaseverbinding openen en query uitvoeren:
define("MYSQL_SERVER", "localhost");
$resultaat = mysql_query($sql) or die(mysql_error());
// Is er een record gevonden?
if (mysql_num_rows($resultaat) < 1) {
mysql_free_result($resultaat); // Resultaatset vrijgeven
$melding = "<p>Er zijn geen resultaten gevonden voor " . $trefwoord . ".</p>";
} else {
$melding = '';
$paginatitel = "Zoekresultaten voor " . $trefwoord;
$melding = "<p>Er zijn ";
$melding .= mysql_num_rows($resultaat);
$melding .= " resultaten gevonden voor " . $trefwoord . ":</p>\n";
// De gevonden producten toevoegen aan de melding:
while ($rij = mysql_fetch_assoc($resultaat)) {
$menucontent = $rij['content'];
// Gebruikersnaam:
$melding .= '<a href="index.php?id=';
$melding .= $rij["paginaid"];
$melding .= '">';
$melding .= '<h2>';
$melding .= $trefwoord;
$melding .= '</h2>';
$melding .= strip(ucfirst($menucontent), 15);
$melding .= '</a>';
// E-Mailadres van de user:
$melding .= $rij["email"];
$melding .= "\n";
}
// Resultaatset vrijgeven en databaseverbinding sluiten:
mysql_free_result($resultaat);
// Einde van de genummerde opsomming:
$melding .= "\n";
// Trefwoord opvallend markeren in de resultaten:
$melding = eregi_replace($trefwoord, '' . $trefwoord . '', $melding);
}
}
}
?>
<input type="text" name="woord" value="<?php echo $trefwoord; ?>" class="zoeken"><input type="submit" class="zoeken_b" value="Zoeken">
include('config.php');
// Variabele voor de ingevoerde zoekterm:
$trefwoord = "";
// Variabele voor titel van de webpagina:
$paginatitel = "Zoeken";
// Variabele voor (fout)meldingen:
$melding = "<p>Typ een trefwoord in het invoervak en klik op de knop Zoeken.</p>";
// Ordernummer doorgeven als sessie-id (sid) in URL's:
if (isset($_GET['sid'])) {
$url1 = "?sid=" . $_GET['sid'];
$url2 = "" . $_GET['sid'];
} else {
$url1 = "";
$url2 = "$trefwoord";
}
if (isset($_GET['woord'])) {
$trefwoord = $_GET['woord']; // Trefwoord uit het vak 'q'
$trefwoord = strip_tags($trefwoord); // Tags en code verwijderen
$trefwoord = trim($trefwoord); // Witruimte verwijderen
// Zoeken alleen starten als er een trefwoord is ingevoerd:
if (strlen($trefwoord) > 1) {
// MySQL-selectiequery met reguliere expressies:
$sql = 'SELECT `paginaid`, `titel`, `content` ';
$sql .= 'FROM `content` ';
$sql .= 'WHERE `titel` REGEXP "' . $trefwoord . '" ';
$sql .= 'OR `content` REGEXP "' . $trefwoord . '" ';
$sql .= 'ORDER BY `paginaid` DESC ';
// Databaseverbinding openen en query uitvoeren:
define("MYSQL_SERVER", "localhost");
$resultaat = mysql_query($sql) or die(mysql_error());
// Is er een record gevonden?
if (mysql_num_rows($resultaat) < 1) {
mysql_free_result($resultaat); // Resultaatset vrijgeven
$melding = "<p>Er zijn geen resultaten gevonden voor " . $trefwoord . ".</p>";
} else {
$melding = '';
$paginatitel = "Zoekresultaten voor " . $trefwoord;
$melding = "<p>Er zijn ";
$melding .= mysql_num_rows($resultaat);
$melding .= " resultaten gevonden voor " . $trefwoord . ":</p>\n";
// De gevonden producten toevoegen aan de melding:
while ($rij = mysql_fetch_assoc($resultaat)) {
$menucontent = $rij['content'];
// Gebruikersnaam:
$melding .= '<a href="index.php?id=';
$melding .= $rij["paginaid"];
$melding .= '">';
$melding .= '<h2>';
$melding .= $trefwoord;
$melding .= '</h2>';
$melding .= strip(ucfirst($menucontent), 15);
$melding .= '</a>';
// E-Mailadres van de user:
$melding .= $rij["email"];
$melding .= "\n";
}
// Resultaatset vrijgeven en databaseverbinding sluiten:
mysql_free_result($resultaat);
// Einde van de genummerde opsomming:
$melding .= "\n";
// Trefwoord opvallend markeren in de resultaten:
$melding = eregi_replace($trefwoord, '' . $trefwoord . '', $melding);
}
}
}
?>
<input type="text" name="woord" value="<?php echo $trefwoord; ?>" class="zoeken"><input type="submit" class="zoeken_b" value="Zoeken">
Config.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
$db_user = "gb"; // Gebruiker voor MySQL
$db_pass = "pass"; // Wachtwoord voor MySQL
$db_host = "localhost"; // Host voor MySQL; standaard localhost
$db_db = "db"; // Database
// Als je al ergens anders een database connectie hebt gemaakt,
// maak dan van de volgende twee regels commentaar (# of // ervoor zetten)
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_db);
?>
$db_user = "gb"; // Gebruiker voor MySQL
$db_pass = "pass"; // Wachtwoord voor MySQL
$db_host = "localhost"; // Host voor MySQL; standaard localhost
$db_db = "db"; // Database
// Als je al ergens anders een database connectie hebt gemaakt,
// maak dan van de volgende twee regels commentaar (# of // ervoor zetten)
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_db);
?>