sql >> Databasteknik >  >> RDS >> Mysql

hur man markerar sökresultat

Du ska inte göra det för svårt för dig själv. Allt du behöver för att ersätta varje förekomst av ett ord med ordet insvept i intervallet med den stil som krävs. Detta borde fungera för dig:

function highlight_word( $content, $word, $color ) {
    $replace = '<span style="background-color: ' . $color . ';">' . $word . '</span>'; // create replacement
    $content = str_replace( $word, $replace, $content ); // replace content

    return $content; // return highlighted data
}

function highlight_words( $content, $words, $colors ) {
    $color_index = 0; // index of color (assuming it's an array)

    // loop through words
    foreach( $words as $word ) {
        $content = highlight_word( $content, $word, $colors[$color_index] ); // highlight word
        $color_index = ( $color_index + 1 ) % count( $colors ); // get next color index
    }

    return $content; // return highlighted data
}



// words to find
$words = array(
    'normal',
    'text'
);

// colors to use
$colors = array(
    '#88ccff',
    '#cc88ff'
);

// faking your results_text
$results_text = array(
    array(
        'ab'    => 'AB #1',
        'cd'    => 'Some normal text with normal words isn\'t abnormal at all'
    ), array(
        'ab'    => 'AB #2',
        'cd'    => 'This is another text containing very normal content'
    )
);

// loop through results (assuming $output1 is true)
foreach( $results_text as $result ) {
    $result['cd'] = highlight_words( $result['cd'], $words, $colors );

    echo '<fieldset><p>ab: ' . $result['ab'] . '<br />cd: ' . $result['cd'] . '</p></fieldset>';
}

Att använda reguljära uttryck för att ersätta innehåll skulle göra lika bra, även om du använder str_replace() är lite snabbare.

Funktionerna accepterar dessa argument:

highlight_word( string, string, string );

highlight_words( string, array, array );

Exemplet ovan resulterar i:



  1. MySQL:resultat med flera rader VS resultat på en rad

  2. Konstiga karaktärer i mysql dbase

  3. När kommer en korrekt SQL att ge ett felaktigt resultat

  4. Dynamiska pivottabellkolumner mysql