Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 41
  1. #1

    Motore di ricerca con chiave multipla

    Finora sono riuscito a costruire un piccolo motore di ricerca, che però cerca solo una singola parola.
    Se volessi fare una ricerca su più parole come dovrei fare?
    Se metto 2 parole nel motore di ricerca me la considera come una sola e quindi nella maggior parte dei casi non mi trova nulla.

  2. #2
    bisogna vedere che tipo di metodo hai utilizzato e che tipo di query usi...

    Cmq potresti fare così:

    $ricerca = explode(" ",$stringa);

    foreach($ricerca AS $parola){

    //query di ricerca

    }


    In pratica esplodi la stringa di ricerca in base agli spazi. E per ogni parola esegui una query di ricerca
    w la topa

  3. #3
    $cerca = explode( " ", trim( $_POST["chettecerco"] ) );

    $sufQ = "";
    for( $a = 0, $b = count( $cerca ); $a < $b; $a++ ) {
    $sufQ .= " testo LIKE='%{$cerca[$a]}%' OR";
    }

    $query = "SELECT * FROM tabella WHERE".substr( $sufQ, 0, -3 );
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Ora che ci penso anche il mio cerca una sola parola :|
    Aspetto qualche dritta pure io

  5. #5
    io ho provato a farlo in questo modo:

    codice:
    $keys = explode (",", $chiave);}
    
    $query = "";
    reset($keys);
    while (list(,$parola) = each ($chiave)) 
    { $parola = trim($parola);
    if ($parola != "")
    $query .= "Nick LIKE '%$parola%'";
    }
    $query .= "0";
    ma mi esce questo errore:
    codice:
    Warning: Variable passed to each() is not an array or object in /home/virtual/site100/fst/var/www/html/risultato.php on line 10
    qualcuno sa spiegarmi il motivo? cosa significa?

  6. #6
    eh... non gli passi mica l'array così


    devi mettere

    while (list(,$parola) = each ($keys))
    w la topa

  7. #7
    cos'è cambiato in quello che hai scritto tu?

  8. #8
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    che l'array si chiama $keys non $chiave

  9. #9
    ho provato...non cambia nulla!!!

  10. #10
    Ho provato il primo metodo:

    Codice PHP:

    $parole
    =$_POST[search];

    $ricerca explode(" ",$parole); 

    foreach(
    $ricerca AS $parola){ 

    $query_search mysql_query("SELECT *, MATCH(titolo, testo) AGAINST('+%$parola% -asp' IN BOOLEAN MODE) as score
    FROM News
    WHERE MATCH(titolo, testo) AGAINST('+%
    $parola%  -asp' IN BOOLEAN MODE) 
    ORDER BY score DESC"
    $connection);



    La query finale l'ho presa da un articolo sui motori di ricerca di html.it.

    Ho provato a fare una ricerca con 2 parole che ero sicuro fossero in 2 news differenti. Ho scoperto che mi cerca solo l'ultima parola, ignorando la prima!

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.