Avatar billede s0mmer Nybegynder
15. juni 2008 - 17:01 Der er 2 kommentarer og
1 løsning

Hjælp til søgefunktion

Hej eksperter!

Jeg sidder her søndag eftermiddag og roder med en søgefunktion på min side.

Kort fortalt så er det en søgefunktion som kigger i min mysql med brug af LIKE og viser så derefter den række der opfylder kravet.

Det jeg ønsker at lave er en slags relevans procent. Altså hvis jeg søger på "1234" og i tabellen der står "1234" opnår jeg en 100% relevans. Men hvis jeg derimod søgte på "123" skulle der måske stå 75% relevans. Jeg håber i kan følge mig.

Derudover vil jeg gerne kunne liste flere søgeresultater efter den her relevans. Dvs. højeste % øverst.

Min kode:

== SØGESIDEN:
<?php
session_start();
include("db_con.php");

$answers = $db->SendSQL("SELECT * FROM ja_answers");
$count_answers = count($answers);
$totalanswers = $count_answers;

if(isset($_POST['sSearch']))
{
   
        echo "<script> location = 'search.php?gSearch=".$_POST['sSearch']."' </script>";
}
?>

og formen:

    <form name="search" method="post" action="">
    <input name="sSearch" type="text" id="sSearch" size="50" />
    ?
    </label>
  </p>
  <p>
    <label>
    <input type="submit" name="search" id="search" value="JostAsk" />
    </form>


== RESULTATSIDEN:
<?php
session_start();
include("db_con.php");

$answers = $db->SendSQL("SELECT * FROM ja_answers");
$count_answers = count($answers);
$totalanswers = $count_answers;
   
    $search = mysql_escape_string($_GET['gSearch']);
    $query = $db->SendSQL("SELECT * FROM ja_questions WHERE question LIKE '%".$search."%'");
    $count = count($query);

if(isset($_POST['sSearch']))
{
   
        echo "<script> location = 'search.php?gSearch=".$_POST['sSearch']."' </script>";
}

?>

og svar:

Svar:<br />
<?
    if($count > 0)
    {
        //Vi fandt noget...
          for($i=0;$i<$count;$i++)
        $answer = $db->SendSQL("SELECT * FROM ja_answers WHERE qid='".$query[$i][1]."'");

        print_r ("Resultat: ".$answer[0][3]."<br>");
    }
    else
    {
        //Vi fandt ikke noget...
        echo "Dit spørgsmål '" . $search . "' er desværre ikke blevet besvaret. Opret dig nu og hjælp!";
    }
?>

Hvis i har nogle spørgsmål så fyr løs. Jeg smider 200 points få det svar jeg finder mest nyttig! God søndag :)
Avatar billede jakobdo Ekspert
15. juni 2008 - 21:42 #1
Uden at have arbejdet det store med det, ved jeg du skal bruge MATCH() i mysql.
Fandt dette eksempel, men mere kan jeg ikke bidrage med: http://northsalemcrew.net/2008/05/24/mysql-fulltext-search-tutorial/
Avatar billede s0mmer Nybegynder
15. oktober 2008 - 14:40 #2
Lukker, da jeg ikke kom til noget svar..
Avatar billede s0mmer Nybegynder
15. oktober 2008 - 14:40 #3
..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester