All pastes #164088 Raw Edit

Mine

public text v1 · immutable
·published 2006-09-08 08:56 UTC
rendered paste body
  $query = "SELECT * FROM {$pre}faq WHERE category <> '-1'";

  if ( $_GET[search] ){
    $search_query .= " &&";
    $more_terms = 0;
    $keywords = str_word_count($_GET[search],1);
    for ($i = str_word_count($_GET[search])-1; $i >= 0; $i--){
       if ( $more_terms == "1" ) { $search_query .= " &&"; }
       $search_query .= " ( description LIKE '%$keywords[$i]%' || symptoms LIKE '%$keywords[$i]%' ||  solution LIKE '%$keywords[$i]%' )";
       $more_terms = "1";
    }
  }

  $query .= $search_query;

  $query .= " ORDER BY description";

  $res = mysql_query( $query );
  if( !mysql_num_rows( $res ) )
    echo "{$LANG[faq_no_results]}";
  else
  {

    $results = array();

    while( $row = mysql_fetch_array( $res ) )
    {

       $desc_count = $symptoms_count = $solution_count = 0;
       // lylix // initialize and populate keywords array
       $keywords = str_word_count($_GET[search],1);
       // lylix // normalize the case of each keyword
       foreach ($keywords as $key => $keyword)
           $keywords[$key] = strtolower ($keyword);
       // lylix // set keyword(s) counts // normalize input fields to lower case
       for ($i = str_word_count($_GET[search])-1; $i >= 0; $i--){
          $desc_count += substr_count( strtolower($row['description']), $keywords[$i] );
          $symptoms_count += substr_count( strtolower($row['symptoms']), $keywords[$i] );
          $solution_count += substr_count( strtolower($row['solution']), $keywords[$i] );
       }

       // lylix // get a weight total for this article // may need adjustment
       $weight = ( $desc_count * 15 ) + ( $symptoms_count * 5 ) + ( $solution_count * 2 );

       // dump results into an array
       $results[] = array( id => $row['id'],
                             description => $row['description'],
                             category => $row['category'],
                             parent => $row['parent'],
                             weight => $weight
                            );

    }