Visualizzazione dei risultati da 1 a 4 su 4

Discussione: dubbio match against!!

  1. #1

    dubbio match against!!

    Ho una piccola e stupidissima classe che ha come scopo un piccolo motore di ricerca per la mia stupida applicazione, ho usato match against , invece di like/operatore modulo davanti dietro etcc. ma vedo poche differenze, cioè: se ho un utente che si chiama patella e un'altro patellaen, non me li stampa a video entrambi, ma necessitano 2 differenti ricerche, nel senso che, tralasciando il fatto che minmo devo inserire 4 lettre come stringa ma dipende da php.ini/penso, la query match against poco conta..
    insomma posto il codice
    Codice PHP:

    class search_engine
    {
         public 
    $keysearch ;
         public 
    $query;
        
         
         
        function 
    __construct ()
        {
            
    $this->keysearch =  addslashes ($_GET['cerca']);
            
    $this->query mysql_query ("SELECT * 
    FROM utenti
    WHERE MATCH(id,nome,cognome,foto) AGAINST ('
    $this->keysearch' in boolean mode) order by data asc");
           
        }
        
        function 
    __lenght_string(){
            if (
    strlen ($this->keysearch) < 4){
                echo 
    "inserire almeno 4 caratteri";
                
                }
            
            
            }
            
        function 
    __is_empty($num_rows){
            if (empty (
    $this->keysearch)){
              return ;
            }else
            { 
            
    $num_rows mysql_num_rows ($this->query);
            
            if (
    $num_rows 1){
                print 
    "nessun risultato utile per" $this->keysearch;
                }else{
                print 
    $num_rows "risultati trovati per " $this->keysearch;
                    
                    
               }
            }
        }
        
            
        function 
    __core ($core_for_users){
                
             
          
            while (
    $read mysql_fetch_array ($this->query)){
                
                    
                 
    $numfoto $read['foto'];
                    if (empty (
    $numfoto)){        
                echo 
    "<div id='div_search'>";
                echo 
    '

    <a href="profile.php?cerca=' 
    .$read['id'].'">'.$read[nome].' @ ''
    '
    .

                 
    $read ['foto'].
                 
    $read['cognome'].'
    '
    ;
                
                echo 
    "[img]images/Clip/defaultmedium.gif[/img]".'</a>'.'
    '
    .'</p>';
                
                    }else if (
    $read['foto'] == true){
                      echo 
    "<div id='div_search'>";    
                     echo 
    '

    <a href="profile.php?cerca='
    .$read['id'].'">'.$read['nome']. ' @ '.'
    '
    .

                  
                 
    $read['cognome'].'
    '
    ;
                
                echo 
    "[img]images/avatar/$numfoto[/img]".'</a>'.'
    '
    .'</p>';    
                
                        
                        
                        
                        
                        }
                
                
            }
        
            

            }
        

        
        
        
        
        
        
        
        
        
        

    01001101 01000001 01010010 01001001 01001111 01000000 01001101 01001111 01001110 01000101☺☻

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Premesso che PHP non c'entra niente, neanche col fatto delle 4 lettere: la differenza tra like e match against è l'lagoritmo che usa MySQL per la ricerca.

    Il fatto delle 2 ricerche distinte non l'ho capito.

    Ad ogni modo, match against da il meglio quando si indicano più parole da cercare all'interno dei testi, se gli fai cercare una sola parola, o parte di parola, ha poco senso confrontarlo con like, tendenzialmente daranno lo stesso risultato.

  3. #3
    up
    01001101 01000001 01010010 01001001 01001111 01000000 01001101 01001111 01001110 01000101☺☻

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    le ricerche fulltext di tipo boolean ti danno la possibilità di utilizzare operatori come +, -, * ecc, per ottenere il risultato voluto dovresti appendere un asterisco alla chiave di ricerca, prova e facci sapere.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.