Visualizzazione risultati 1 fino 3 di 3

Discussione: Query ricerca

  1. #1
    Guest

    Predefinito Query ricerca

    Ciao a tutti, ho un database che contiene i seguenti campi: nome e cognome
    Devo fare una query di ricerca per trovare gli utenti iscritti, ma sorge un problema molti cognomi specialmente nella tradizione italiana hanno "de o di" esempio.
    Mario de luca
    Francesco di giovanni

    Il codice che ho scritto per ora è questo, sapete dirmi come potrei migliorarlo.
    Codice PHP:
    $suddivisa = explode(" ",strtolower($search));
    $cout = count($suddivisa);
    $campo = "";

    for(
    $i=0;$i<$cout;$i++){
    $campo .= "(first_name LIKE '$suddivisa[$i]%' OR last_name LIKE '$suddivisa[$i]%')";
    if(
    $i<($cout-1)) $campo .= " AND ";
    }

    $query = "SELECT * FROM user WHERE $campo";
    Ringrazio anticipatamente ;)

  2. #2
    Guest

    Predefinito

    Ma la query funziona? immagino di si.

    Io personalmente sostituirei

    LIKE '$suddivisa[$i]%' (che trova i records che INIZIANO con un certo valore)

    con

    LIKE '%$suddivisa[$i]%' (che trova i records che CONTENGONO un certo valore)

    Sempre personalmente eviterei di splittare il valore di ricerca $search, secondo me ti fa restituire troppi records, specie se il database ne contiene molti... e farei un semplice

    $query = "SELECT * FROM user WHERE first_name LIKE '%".$search."%' OR last_name LIKE '%".$search."%'"

    Ma questo dipende da come vuoi gestire la logica della ricerca, la mia è solo una preferenza personale :-)

    Ciao!

  3. #3
    Guest

    Predefinito

    In realta mi servirebbe sviluppare una query più complessa.
    Se qualcuno sa darmi una mano o qualche consiglio.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •