Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Ignora parole sotto i 3 caratteri

    Salve a tutti,
    mi sto facendo un piccolo motorino di ricerca per il mio sito attraverso un pò di fantasia e post letti qui dentro
    Per ora funziona tutto ma ...

    Sono giunto ad un problema .. se qualcuno cerca: "il gatto bianco" vorrei che la parola IL fosse ignorata perchè troppo breve ...
    quindi dire al mio motore di ricerca "ignora tutte le parole sotto i 3 caratteri".

    come è possibile fare ciò?

    codice:
    <? 
    
    $db=mysql_connect($host,$user,$pass) or die ("Errore durante la connessione al database"); 
    
    // Selezione del database 
    
    $db_name=".........";
    
    //nome tabella
    
    $tabella="............";
    
    //seleziona il database 
    
    mysql_select_db($db_name,$db) or 
    
    die("Impossibile selezionare il database $db_name."); 
    
    $sql="SELECT * FROM $tabella WHERE "; 
    
    $where=""; 
    
     ########################################
    
    //aggiungi questo se la versione di php è successiva alla 4.1.0
    
    //trim elimina gli spazi prima e dopo la parola inserita nel form
    
    //strip_tags elimina ogni tag HTML inserito nel form 
    
     ########################################
    
    $str=strip_tags(trim($_POST['str'])); 
    
    
    //elimina ogni tag html immesso nel form!! 
    
    strip_tags($_POST['str']);
    $words=explode(" ",$str); 
    
    $j=0; 
    
    while (isset($words[$j])) { 
    
    $where=$where."nome LIKE '%".$words[$j]."%' OR descrizione LIKE '%".$words[$j]."%'"; 
    
    if (isset($words[$j+1])): 
    
    $where=$where." OR "; 
    
    endif; 
    
    $j++; 
    
    } 
    $result = mysql_query($sql.$where, $db); 
    while ($row=mysql_fetch_array($result)) { 
    
    print("<A class=verdananerobold HREF=\"".$row["icona"].".html\">".$row["nome"]."</A>
    <A class=verdananero10px HREF=\"sezione.php?categoria=".$row["categoria"]."\">[".$row["categoria"]."]</A>
    
    
    ");
    
    
    print("".$row["descrizione"]."");
    print("<div align=right> 
    click: ".$row["hits"]."</div>"); 
    print("<HR SIZE=\"1\">
    "); 
    
    }
    mysql_close(); 
    ?>

    Grazie anticipatamente
    Perchè uso Maxthon? | Mi piace questa chat

  2. #2
    dopo aver fatto l'explode " " , basta che con un ciclo controlli che la lunghezza sia maggiore di 3 (con strlen()), in caso contrario magari fai l'unset di quella var

  3. #3
    metti

    if (strlen($words[$j]) >= 3) $where=$where."nome LIKE '%".$words[$j]."%' OR descrizione LIKE '%".$words[$j]."%'";

    al posto di

    $where=$where."nome LIKE '%".$words[$j]."%' OR descrizione LIKE '%".$words[$j]."%'";
    visitate http://camicio.altervista.org per caxxate varie :d

  4. #4
    Originariamente inviato da camicio109
    metti

    if (strlen($words[$j]) >= 3) $where=$where."nome LIKE '%".$words[$j]."%' OR descrizione LIKE '%".$words[$j]."%'";

    al posto di

    $where=$where."nome LIKE '%".$words[$j]."%' OR descrizione LIKE '%".$words[$j]."%'";
    Grazie ad entrambi per le risposte e la rapidità

    Cmq .. Camicio sembra funzionare ma quando nel campo di ricerca inserisco delle parole al di sotto dei 3 caratteri esce fuori questo errore:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/www/web/************/result.php on line 61


    Riga 61 = while ($row=mysql_fetch_array($result)) {


    Grazie di nuovo
    Perchè uso Maxthon? | Mi piace questa chat

  5. #5
    Non riesco, sempre nello stesso script, neanche a fare un INSERT ....
    sarà tempo di attaccare mouse al chiodo ??

    codice:
    $db=mysql_connect($host,$user,$pass) or die ("Errore durante la connessione al database"); 
    $db_name="++++++++++++";
    $tabella="giochi";
    
    mysql_select_db($db_name,$db) or 
    die("Impossibile selezionare il database $db_name."); 
    
    $query="INSERT INTO ricerche SET key='me devi da funzionà uffa'";
    
    $sql="SELECT * FROM $tabella WHERE "; 
    
    $where=""; 
    
    ecc ecc
    :master:
    Perchè uso Maxthon? | Mi piace questa chat

  6. #6
    ti mancano i mysql_query()

  7. #7
    scusami ma non sono capacissimo

    codice:
    $db_name="+++++++";
    $tabella="+++++++++";
    mysql_select_db($db_name,$db) or 
    die("Impossibile selezionare il database $db_name."); 
    
    $query_insert="INSERT INTO ricerche SET key='test'";
    $query=mysql_db_query($db,$query_insert);
    
    $sql="SELECT * FROM $tabella WHERE "; 
    
    $where="";
    
    ecc
    ma non funziona .. perchè ??

    Perchè uso Maxthon? | Mi piace questa chat

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 © 2024 vBulletin Solutions, Inc. All rights reserved.