Visualizzazione dei risultati da 1 a 6 su 6

Discussione: motore di ricerca

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    motore di ricerca

    Salve,

    supponiamo di avere nel campo "marca" il valore "Opel" e nel campo "modello" il valore "Corsa 1.2".
    Devo realizzare un motore di ricerca per parola chiave.
    ho fatto:

    $search=trim($search);
    $search=ereg_replace(" +"," ",$search);
    $select.="and modello like '%$search%' or marca like '%$search%'";

    il che funziona bene se nel campo di ricerca metto "Opel" oppure solo "Corsa 1.2".
    Come posso fare per avere un return anche mettendo "Opel Corsa 1.2"?

    Inoltre, vorrei anche cercare invertendo le parole, tipo "Corsa Opel"

    Se qulcuno ha un'idea, è ben accetta

  2. #2
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    potresti esplodere la stringa di ricerca in un array contenente tutte le parole e poi metterle in or nella query...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    ok...

    Ciao e grazie per il consiglio.
    Mi dici solo come si fa a selezionare "qualsiasi elemento dell'array" nella condizione where dopo aver esploso...

    Fino ad ora, sono a questo punto:

    ...
    $search=trim($search);
    $search=ereg_replace(" +"," ",$search);
    $string=explode(" ",$search);
    list($word)=$string;
    $select.="and marca like '%$word%' or modello like '%$word%'";
    ...

    ma evidentemente non seleziona tutti gli elementi dell'array.
    Vorrei evitare di fare le condizioni per ogni elemento ...[i], ecc.

    Ciao e grazie.

  4. #4
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    for($i=0;$i<count($string);$i++){
    $select.=" or marca like '%$string[$i]%' or modello like '%$string[$i]%' ";
    }


    anzi

    $select.=" and ( marca like '%$string[0]%' or modello like '%$string[0]%' ";
    for($i=1;$i<count($string);$i++){
    $select.=" or marca like '%$string[$i]%' or modello like '%$string[$i]%' ";
    }
    $select.=")";

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    solo ultima cosa

    Ciao e grazie ancora.
    Un'ultima cosa.
    Nella query con like %var%, come si fa ad inserire % var % ossia, per dire "qualunque carattere,spazio,variabile,spazio,qualunque carattere" al posto di "qualunque carattere,vriabile,qualunque carattere". Ossia per trovare nella stringa le parole che contengono il valore dell'array ma separate da uno spazio all'inizio e alla fine.

    Ciao e scusa ancora, grazie.

  6. #6
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    ma figurati
    io sto aspettando che qualcuno risponda al mio quesito, ma...

    per l'ultima cosa.. sorry non lo so


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.