Finpudsning af søgefunktion
Hej Eksperter,Jeg har denne søgefunktion, som jeg gerne vil have lavet nogle justeringer på, men jeg er ikke sikker på hvordan og hvorledes det skal gøres, så hvis i vil hjælpe mig igennem det ville det være lækkert.
Først og fremmest vil jeg have funktionen til at søge i to tableller og udskrive dem i rækkefølge af hvor mange gange søgeordet optrådte i Beskrivelsen, titlen og koden.
Der ud over vil jeg også have fjernet den funktion er highligther søgeordet, da det ikke apsser ind i mit design.
Source.
<form action="index.php?H=Home&U=9" method="POST">
<table width="100%"><tr><td valign="center">
<input type="text" name="sSearch" value="<?php if(isset($_POST['sSearch'])) echo $_POST['sSearch'];?>" style="width: 85%">
<input type="submit" name="search" value="Søg" class="knap" style="width:35px"> <input type="button" name="help" value=" class="knap" style="width:15px"onclick="window.open('pop-up.php?Titel=Søgning&Tekst=For at søge paa mere end et ord skal du lave et MELLEMRUM imellem ordene!<br><br>Du kan ikke bruge X som seperator ved søgning på flere ord!','Eksempel','width=400,height=250');"><br>
</td></tr></table></form>
<?php
if(!empty($_POST['sSearch'])) {
$search_org=$_POST['sSearch'];
$search_titel="LOWER(Titel) LIKE '%".str_replace(" ", "%' OR LOWER(Titel) LIKE '%", $search_org)."%'";
$search_beskrivelse = "LOWER(Beskrivelse) LIKE '%".str_replace(" ", "%' OR LOWER(Beskrivelse) LIKE '%", $search_org)."%'";
$search_kode="LOWER(Kode) LIKE '%".str_replace(" ", "%' OR LOWER(Kode) LIKE '%", $search_org)."%'";
$query=mysql_query("SELECT * FROM koder WHERE $search_titel OR $search_beskrivelse OR $search_kode AND Godkendt = 'Y'") or die(mysql_error());
if(mysql_num_rows($query)>0) {
$tCount=0;
$oOutput="<table width='100%' border='0' cellspacing='0' cellspan='0'>";
$search=explode(" ",$search_org);
while($row = mysql_fetch_array($query)) {
$iCount=0;
$Beskrivelse=$row['Beskrivelse'];
for($k=0; $k<count($search); $k++) {
$reg_exp1="/^(|.*\W{1})".strtolower($search[$k])."(\W{1}.*|)$/";
if(preg_match($reg_exp1, strtolower($row['Beskrivelse']))) {
$iCount+=substr_count(strtolower($row['Beskrivelse']),$search[$k]);
$Beskrivelse=str_replace(strtolower($search[$k]),"<b>".strtolower($search[$k])."</b>",$Beskrivelse);
$iCount+=substr_count(strtoupper($row['Beskrivelse']),$search[$k]);
$Beskrivelse=str_replace(strtoupper($search[$k]),"<b>".strtoupper($search[$k])."</b>",$Beskrivelse);
$iCount+=substr_count(ucwords($row['Beskrivelse']),$search[$k]);
$Beskrivelse=str_replace(ucwords($search[$k]),"<b>".ucwords($search[$k])."</b>",$Beskrivelse); }
if(preg_match($reg_exp1, strtolower($row['Titel']))) {
$iCount+=substr_count(strtolower($row['Titel']), $search[$k]); }
if(preg_match($reg_exp1, strtolower($row['Kode']))) {
$iCount+=substr_count(strtolower($row['Kode']), $search[$k]); } }
if($iCount!=0) {
$oOutput.="<tr>\n<td class='tekst'><b>".$row['Titel']."</b><br>\n";
$oOutput.=$Beskrivelse."<br>\n";
$oOutput.="<a href='index.php?H=Koder&K=".$row['ID']."'>Gå til koden »</a></td>\n</tr>";
$tCount+=$iCount; } }
if($tCount>0) {
$oOutput.="<tr>\n<td class=\"tekst\">Der blev fundet ialt ".$tCount." matches på : ".$search_org."</td>\n</tr></table>";
} else {
$oOutput="<table width='100%' border='0' cellspacing='0' cellspan='0' class=\"tekst\"><tr><td>Der var ingen matches på : ".$search_org."</td></tr></table>";
}
} else {
$oOutput="<table width='100%' border='0' cellspacing='0' cellspan='0' class=\"tekst\"><tr><td>Der var ingen matches på : ".$search_org."</td></tr></table>";
}
echo $oOutput;
}
if(!isset($oOutput)){
echo"Du skal intaste et søgeord.";
}
?>
</body>
</html>
