?
Onbekende gebruiker
19-08-2004 20:37
Je zet gewoon de beschrijving, het onderwerp, en het zoekwoord in een tabel. Dan zoek je op het zoekwoord.
Link gekopieerd
?
Onbekende gebruiker
19-08-2004 21:33
Sorry ik kan je niet helemaal volgen.
Ik gebruik nu dit:
--------------------
if(isset($_POST['search'])){
$gSearch = addslashes($_POST['search']);
$gSearch = htmlspecialchars($gSearch);
$select = "SELECT * FROM ".$tbl_maintext." WHERE MATCH (text, title) AGAINST ('$gSearch*' IN BOOLEAN MODE)";
$result = mysql_query($select,$db) or die(mysql_error());
if($result){
while($search = mysql_fetch_assoc($result)){
echo $search['title'], '<br>';
$text = html_entity_decode($search['text']);
$text = stripslashes($text);
$text = substr($text,0,100). "...";
echo '<blockquote>', strip_tags($text), '</blockquote>';
}
}
} else {
?>
<form action="<? //echo $_SERVER['PHP_SELF']; ?>" method="POST">
<table>
<tr><td>Zoeken op de website</td></tr>
<tr><td>Zoekwoord:<br><input type="text" name="search" title="Zoekwoord" maxlength="50"></td></tr>
<tr><td><input type="submit" value="Zoek"></td></tr>
</table>
</form>
<?
}
--------------------
Kijk het zoeken lukt wel, maar ik wil de resultaten mooi op rang sorteren en een stukje tekst plaatsen waar het zoekwoord voorkomt.
Check bijvoorbeeld deze screen:
http://www.fckeditor.nl/screen.jpg
Dat moet toch duidelijk zijn?
Degene die weet hoe zou me geweldig kunnen helpen! Alvast bedankt!
Link gekopieerd
Dat heb ik niet (heb nog gezocht.. kon het zo snel niet vinden)... Misschien kan je het uit een bestaand script trekken. Ik heb wel iets anders voor je. Een highlight functie voor je zoekwoorden:
Werkend te zien op
http://spacefrog.ath.cx/extra/phphulp/zoeken.php
En hier het script:
<?php
// Zoeken
// Highlight functie
function highlight_words($text,$zoekwoord)
{
foreach($zoekwoord as $woord)
{
$text = preg_replace("/$woord/i",'<span style="color:red;font-weight:bold;">'.$woord.'</span>',$text );
}
return($text);
}
// De tekst
$artikel = "Hier komt dan natuurlijk de rij uit je MySQL tabel";
// Zoekwoorden
$zoekwoord[] = "woord1";
$zoekwoord[] = "woord2";
$resultaat = highlight_words($artikel,$zoekwoord);
echo $resultaat;
?>
Bron van de code:
http://forums.devarticles.com/showthread.php?mode=hybrid&t=3420
Elwin
Link gekopieerd
Ik zou ook graag een zoek functie hebben met fuilltext maar hij moet ook werken als er meer dan 50% resultaten zijn ...
Link gekopieerd
?
Onbekende gebruiker
20-08-2004 11:55
Highligthing heb ik.
Ben vanmorgen hele morgen bezig geweest en heb nu dit:
$text = html_entity_decode($search['text']);
$text = stripslashes($text);
$text = strip_tags($text);
$text = strtolower($text); //converteren naar kleine letters
$needle = strlen($gSearch); // lengte woord bepalen
$pos = strpos($text, $gSearch); // positie eerste zoekwoord
$posbegin = $pos - 25; //begin bepalen
if($posbegin < 0) { $posbegin = 0; }
$poseind = $posbegin + '100';
$text = substr($text,$posbegin,$poseind); //string knippen knip(uittext, vanaf, lengte)
$length = strlen($text);
if($length > 100){
$text = substr($text, 0,125);
}
$text = str_highlight($text,$gSearch); //zoekwoord oplichten
echo '</li>';
echo '<blockquote>...', $text, '<br>lente: '.$pos, '<br>posbegin:', $posbegin.'<br>tekst:'.$length.'</blockquote>';
Link gekopieerd