[Sql/Query] Motore di ricerca

  • Creatore Discussione Creatore Discussione angel
  • Data di inizio Data di inizio

angel

Utente Attivo
2 Nov 2009
109
0
0
Ciao a tutti sto sistemando il mio motore di ricerca che interroga il db, ma sto avendo alcune difficoltà...
Sql:
Codice PHP:
PHP:
SELECT * FROM utente WHERE nome REGEXP '^$cerca' OR cognome REGEXP '^$cerca'
Nome|Cognome
Paolo|Pelè
Pietro|Audi
Andre|Partman

Vi faccio un esempio se metto nel campo input:
"p" mi dovrebbe stampare tutti e 3 i risultati
"pa" mi dovrebbe stampare il primo e ultimo
"pa p" mi dovrebbe stampare solo il primo
"p a" mi dovrebbe stampare il secondo e l'ultimo
"p an" solo ultimo

Sapete darmi qualche consiglio...
Ringrazio anticipatamente =)
 
Credo che dovresti farlo dallo script in questo modo:
PHP:
<?php
$parts = explode(' ', $cerca);

$sql = 'SELECT * FROM utente';
if (isset($parts[0]) && !isset($parts[1])) {
    $sql .= " WHERE nome LIKE '{$cerca}%' OR cognome LIKE '{$cerca}%'";
}
elseif (isset($parts[0]) && isset($parts[1])) {
    $sql .= " WHERE nome LIKE '{$parts[0]}%' AND cognome LIKE '{$parts[1]}%'";
}

// ...
?>
 

Discussioni simili