Originariamente inviato da Gina
salve, ho adattato un pò di codice che ricerca gli utenti registrati al sito,
però c'è un piccolo problema: lo script funziona benissimo, ma se come chiave
di ricerca uso per esempio Verdi Giuseppe, come risultato mi da tutti i Verdi, tutti i giuseppe
come volevo, ma io vorrei che i primi risultati fossere UGUALI alla chiave di ricerca,
poi dopo tutti gli altri. E' possibile o devo rifare tt da capo?

ecco il codice che esegue la ricerca:

Codice PHP:
$praticante=$_POST['praticante'];

$sql "SELECT nome, cognome, username, email, data_reg FROM login WHERE MATCH

(nome, cognome, username) AGAINST ('*
$praticante*' IN BOOLEAN MODE) ORDER BY 

cognome DESC"
;


$risultato mysql_query($sql);

    if (!
$risultato) {
        echo 
"Fallimento nell'esecuzione della query ($sql) dal DB: " mysql_error();
        exit;
    }
    if (
mysql_num_rows($risultato) == 0) {
        echo 
"nessun praticante";
        exit;
    }

    while (
$riga mysql_fetch_array($risultato))
 {

    
$username=$riga["username"];
    
$nome=$riga["nome"];
    
$cognome=$riga["cognome"];
    
$email=$riga["email"];
    
$data_reg=$riga["data_reg"];

echo 
"nome: $nome
"
;
echo 
"cognome: $cognome
"
;
echo 
"username: $username
"
;
echo 
"e--mail: $email
"
;
echo 
"registrato il: $data_reg
"
;
echo 
"**********************
"
;

E' ovvio, guarda bene la tua query: tu ordini i risultati in base al cognome.

Devi aggiungere il campo 'pertinenza' nel select, e ordinare i risultati in base a quello.

una roba del tipo:
Codice PHP:
$sql "SELECT nome, cognome, username, email, data_reg, MATCH(nome, cognome, username) AGAINST ('*$praticante*' IN BOOLEAN MODE) AS pertinenza FROM login WHERE MATCH

(nome, cognome, username) AGAINST ('*
$praticante*' IN BOOLEAN MODE) ORDER BY 

pertinenza DESC, cognome DESC"

dovrebbe darti i risultati ordinati prima in base alla pertinenza, e poi in base al cognome (per i risultati con pertinenza uguale)