Jump to content

vipin8vit

New Members
  • Posts

    1
  • Joined

  • Last visited

    Never

Posts posted by vipin8vit

  1. i am trying a search with levenshtein but m stuck with a serious problem.The field "topic" in the database is a string of more than one word which m not able to solve with the type of search i am doing here.had there been one word in the string it would be fine but for such case its a total failure.

     

    i also need to use the soundex() or some similar function as the entries in my database are no similar.and again one more problem php 4.4.2 that m using is case sensitive so levenshtein is not working fine.

     

    m totally stuck.please fix the code.here is the code

    ...........................................................................

     

    <?php
    // input misspelled word
    
    $trimmed=@$_GET['q'];
    $input=trim($trimmed);
    
    
    $arrWords=explode(" ",$input);
    
    if(sizeof($arrWords)==0||$input==""){
    echo"enter keyword";
    
    
    echo"<a href=\"lev.php\">click here</a>";
    
    
    
    }
    
    
    
    $m=sizeof($arrWords);
    echo"nkdkf$m";
    
    
    
    
    $shortest = -1;
    
    
    
    mysql_connect("localhost","root");
    
    @mysql_select_db(test);
    
    //foreach ($arrWords as $trimm){
    //$query1 = "SELECT topic FROM forum_question WHERE topic LIKE \"%$trimm%\" ORDER BY id DESC" ; 
    
    
    
    
    
    
    
    
    
    $query1="select topic from forum_question";
    $result1=mysql_query($query1);
    
    $i=0;
    $count=0;
    while($r=mysql_fetch_array($result1)){
    $topic[$i]=$r["topic"];
    //echo $topic,"\n";
    //echo"<br>";
    
    //$toopic=explode(" ",$topic);
    //$n=sizeof($toopic);
    //for($k=0;$k<$n;$k++){
    //$toopic[$i][$k]=$toopic[$k];
    //echo $toopic[$i][$k];
    //}
    $i++;
    $count++;
    }
    
    
    
    
    
    
    
    
    //foreach ($topic as $word) {
    
        
    $i=0;
    for($i=0;$i<$m;$i++){
    for($j=0;$j<9;$j++){
    //for($k=0;$k<$n;$k++){
    
    $lev = levenshtein($arrWords[$i], $topic[$j]);
    
    echo"$lev\n\n";
    
        
        if ($lev == 0) {
    
            // closest word is this one (exact match)
            $closest = $topic[$j];
            $shortest = 0;
    
            // break out of the loop; we've found an exact match
           break;
        }
    
        
        if ($lev <= $shortest || $shortest < 0) {
            // set the closest match, and shortest distance
            $closest  = $topic[$j];
            $shortest = $lev;
    
    
    }
      
    }
    
    echo "Input word: $arrWords[$i]\n";
    if ($shortest == 0) {
        echo "Exact match found: $closest\n";
    } else {
        echo "Did you mean: $closest?\n";
    
    }
    $closest="";
    $shortest=-1;
    }
    ?> 

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.