Hulp nodig voor zoekscript
Ben nieuw hier maar heb direct een vraag. Ik ben als vrijwilliger bezig met de webdesign van een amateur voetbalclub bij mij in de buurt. Ik heb niet zo veel kennis van PHP dus ben ik op zoek gegaan naar een zoekscript. Dat wou ik als voorbeeld nemen maar helaas kon ik geen goede vinden. Deze scripts zoeken namelijk de gehele site door op woorden. Wat ik nodig heb is slechts een soort redirect script op basis van de aangegeven woorden. Zoiets:
- Men typt een zoekwoord in het zoekveld en klikt op zoek
- In MySQL of txt bestand woorden linken met pagina's:
Bijv. "stand" , "goal" , "goals" , "doelpunten" -> "stand.html"
- De script controleert het woord en redirect de bezoeker naar de pagina
That's it. Kunnen jullie mij globaal aangeven hoe ik dit moet aanpakken?
Ikzelf zou een MySQL-database adviseren, waarin je een tabel maakt met de woorden, en de pagina's.
Een SELECT pagina FROM zoekwoorden WHERE woord = 'stand' zal dan voldoende moeten zijn.
En daarmee het resultaat tonen kan ik nog wel. Maar hoe stuur je het direct naar de desbetreffende pagina?
Gewijzigd op 24/11/2014 18:05:54 door - Ariën -
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
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
<?php
$connect=mysql_connect("localhost","user","pass");
mysql_select_db('dbnaam',$connect);
if(!$connect)
print 'Could not connect to the database';
if(isset($_GET['search']))
{
$inp = Clean($_GET['inpname']);
$sQuery="SELECT Link FROM Adres WHERE Zoekwoord LIKE '%".$inp."%' ";
$r = mysql_query($sQuery) or die(mysql_error());
if(mysql_affected_rows()===0)
echo "{$inp} is niet in de database.";
else
{
while($row=mysql_fetch_array($r))
header('location: $row');
}
}
function Clean($str)
{
return mysql_real_escape_string(strip_tags(trim($str)));
}
?>
<form name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<input name="inpname" type="text">
<input type="submit" name="search" value="Search">
</form>
$connect=mysql_connect("localhost","user","pass");
mysql_select_db('dbnaam',$connect);
if(!$connect)
print 'Could not connect to the database';
if(isset($_GET['search']))
{
$inp = Clean($_GET['inpname']);
$sQuery="SELECT Link FROM Adres WHERE Zoekwoord LIKE '%".$inp."%' ";
$r = mysql_query($sQuery) or die(mysql_error());
if(mysql_affected_rows()===0)
echo "{$inp} is niet in de database.";
else
{
while($row=mysql_fetch_array($r))
header('location: $row');
}
}
function Clean($str)
{
return mysql_real_escape_string(strip_tags(trim($str)));
}
?>
<form name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<input name="inpname" type="text">
<input type="submit" name="search" value="Search">
</form>
Met echo "{$row[0]}"; kan ik de resultaat tonen. Maar de header snap ik niet helemaal. Enig idee hoe header('location: $row'); eruit moet zien? Ik krijg dan het volgende link te zien op het adresveld in de browser: http://www.site.nl/$row.
Zal wel makkelijk zijn, maar voor een beginner als ik best moeilijk :)
Gewijzigd op 24/11/2014 21:55:05 door Omer Dost
Houd wel rekening dat dat mysql-functies inmiddels worden afgeraden en dat je beter naar de functies van MySQLi of PDO kan kijken.
Gewijzigd op 24/11/2014 22:43:38 door - Ariën -
Maar ik krijg nu www.site.nl/Array
Ik zal me in MySQLi en PDO verdiepen.
Gewijzigd op 25/11/2014 01:02:16 door Omer Dost
$row['Link'] wordt het dan.