View Single Post
  #106  
Old 03-04-2004, 11:58 PM
Roderik Roderik is offline
 
Join Date: Sep 2002
Location: Belgium
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Damn should have kept reading till the botom of the page

Since i was bored i made a little function that makes a nice mySQL 3 string of where statements to "replace" the full text indexing.

Function works, didn't try the sql output but it's already 3.00 AM...

Hope you can do something with it to make the thing fully mySQL 3 compatible

PHP Code:
<?php
/**
 * Function that will handle the conversion from the boolean 
 * full text search that is only available for mySQL v4.0.1 
 * and higher to a mySQL v3 alternative.
 *
 * @param       string      $keywords (+xxx -yyy +zzz)
 * @return      string      the string with the sql commands
 * @author      Roderik van der Veer <roderik@vanderveer.be>
 * @version     $Id$
 */


function mysqlVersionThreeFix($keywords){
    
$kw explode(" "$keywords);
    
    
$kwplus = array();
    
$kwmin = array();
    
    for (
$i=0$i sizeof($kw); $i++){
        if (
$kw[$i]{0} == '+'){
            
array_push($kwplussubstr($kw[$i], 1));
        } else {
            
array_push($kwminsubstr($kw[$i], 1));   
        }      
    }

    
$sqlstring 'AND (';
    
    for (
$i=0$i sizeof($kwplus); $i++){
        if (
$i != 0) {
            
$sqlstring .= ' AND ';
        }
        
$sqlstring .= "(name LIKE '%".$kwplus[$i]."%' OR description LIKE '%".$kwplus[$i]."%')";
    }
    for (
$i=0$i sizeof($kwmin); $i++){
        
$sqlstring .= " AND (name NOT LIKE '%".$kwmin[$i]."%' OR description NOT LIKE '%".$kwmin[$i]."%')";
    }  
        
    
$sqlstring .= ') '
    
    return 
$sqlstring;    

}

$keywords '+word1 +word2 -word3 +word4 -word5';

echo 
mysqlVersionThreeFix($keywords);

?>
Output:
Code:
AND ((name LIKE '%word1%' OR description LIKE '%word1%') AND (name LIKE '%word2%' OR description LIKE '%word2%') AND (name LIKE '%word4%' OR description LIKE '%word4%') AND (name NOT LIKE '%word3%' OR description NOT LIKE '%word3%') AND (name NOT LIKE '%word5%' OR description NOT LIKE '%word5%'))
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01209 seconds
  • Memory Usage 1,794KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete