- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- MySQL - Ricerca Full-Text
-
MySQL - Ricerca Full-Text
Ciao a tutti !
Seguendo un tutorial di un sito web ho tentato di fare un piccolo motore di ricerca per il mio database prendendo spunto dalla seguente query di esempio dal sito:```
SELECT *, MATCH(indirizzo, nome, descrizione) AGAINST('milano') AS attinenza FROM locali WHERE MATCH(indirizzo, nome, descrizione) AGAINST('milano') ORDER BY attinenza DESCNe riporto la pagina "search.php":
<?php
ob_start();function stripScriptTags($string) {
$string=ereg_replace("<!--", "<!--", $string);
$string=ereg_replace("<", "<", $string);
$string=ereg_replace(">", ">", $string);
$string=ereg_replace("-->", "-->", $string);
$string=ereg_replace("=", "=", $string);
$string=ereg_replace(""", """, $string);
$string=ereg_replace("'", "'", $string);
return $string;
}include "connect.php";
$query = "SELECT *, MATCH(nome , desc , tags , user) AGAINST('".stripScriptTags($_POST['search'])."')
AS attinenza FROM application WHERE MATCH(nome , desc , tags , user)
AGAINST('".stripScriptTags($_POST['search'])."') ORDER BY attinenza DESC ";$results = mysql_query($query) or die (mysql_error());
while ($row = mysql_fetch_array($results))
{
extract ($row);echo "$nome <br>";
}
?>
Non capisco quale sia il problema! Mi aiutate? Questo è per un sito che sto programmando per la condivisione di codice online opensource gratis (ovviamente), non vorrei che qualcuno pensasse che chieda aiuto a mio profitto. Grazie :wink3:
-
Quando ti trovi in una situazione come questa, per prima cosa fai un echo di $query per debug, e quarda la query generata dallo script.
Magari postala che la vediamo insieme.Intanto, sei sicuro che fulltext sia abilitato e gli indici siano creati correttamente?
-
@sydarex said:
Quando ti trovi in una situazione come questa, per prima cosa fai un echo di $query per debug, e quarda la query generata dallo script.
Magari postala che la vediamo insieme.Intanto, sei sicuro che fulltext sia abilitato e gli indici siano creati correttamente?
Questa è la query ottenuta:SELECT *, MATCH(nome , desc , tags , user) AGAINST('ciao') AS attinenza FROM application WHERE MATCH(nome , desc , tags , user) AGAINST('ciao') ORDER BY attinenza DESC
e la tabella è composta dalle seguenti colonne:
"id nome desc tags number user"
-
Sicuro di aver creato correttamente gli indici Fulltext?
-
@sydarex said:
Sicuro di aver creato correttamente gli indici Fulltext?
Credo di sì! Su phpmyadmin ho selezionato quelle 4 colonne ed ho cliccato su "Se selezionate --> Full Text (Testo Completo)"
-
@sydarex said:
Sicuro di aver creato correttamente gli indici Fulltext?
Credo di aver capito! Infatti una colonna si chiama "desc" proprio come la funzione "DESC". E' lì che avviene l'errore,viene frainteso. Devo mettere desc fra "":
desc` giusto?
-
Problema risolto!
-
@rikicecchi said:
Credo di aver capito! Infatti una colonna si chiama "desc" proprio come la funzione "DESC". E' lì che avviene l'errore,viene frainteso. Devo mettere desc fra "
":
desc` giusto?
Grazie di tutto, ho risolto il problema