Motore di ricerca con classe full text | La nostra community

Topic: Pubblico - Composto da 1 Post di 1 Utente.

29 Giugno, 2011 19:53 #1
searedone
Utente

searedone
Registrato: Mar, 2011
Posts: 10
Offline

please chi mi aiuta .....

Ho trovato una classe di ricerca fulltext lo sistemata con la mia tabella ma non mi restituisce niente... chi mi aiuta please .....

Form cerca

1<img src="immagini/alt_ristoranti.jpg" width="310" height="79" />   
2<form action='testcercafulltext.php' method='POST'>   
3
4  <input type='text' tabindex='15' name='key' class='input' size="15" >   
5<br /> <font color="ff0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"> Esempi di ricerca mirata:</font><br /><font color="006600" size="2" face="Verdana, Arial, Helvetica, sans-serif"> Milano, via montenapoleone<br />Ristorante da Pippo<br />Ristorante vegetariano Roma <br />Ristorante di pesce Como</font><br  />   
6    <input type="image" src="immagini/trova.gif"  value='Cerca'>   
7
8    </form>

testcercafulltext.php

 1<?php   
 2
 3class Search   
 4{   
 5    #CONFIGURA   
 6    #Parametri ricerca   
 7    var $fulltext = "milano,roma,url,via,descrizione,chiave";   
 8    var $table = "insegna";   
 9    #parametri db   
10    var $host = "localhost";   
11    var $password = "";   
12    var $user = "";   
13    var $db = "";   
14    #metodo score -> p in percentuale, f in frazione   
15    var $pf = "f";   
16    #FINE CONFIGURAZIONE   
17    #NON EDITARE OLTRE QUESTA LINEA   
18    var $key;   
19    var $conn;   
20    var $res;   
21    var $total;   
22    
23        function Search($key)   
24        {   
25            $this->key = $key;   
26        }   
27    
28        function DbConnectAndSelect()   
29        {   
30            $this->conn = @mysql_connect($this->host, $this->user, $this->password) or die ("Impossibile stabilire una connessione con il server.<br>MySql risponde: " . mysql_error() . "<br>Il codice errore é:" . mysql_errno());   
31    
32            @mysql_select_db($this->db, $this->conn) or die ("Impossibile connettersi al database $this->db.<br>MySql risponde: " . mysql_error() . "<br>Il codice errore é:" . mysql_errno());   
33        }   
34    
35        function GetResource()   
36        {   
37            $this->DbConnectAndSelect();   
38            $sql = "SELECT *, MATCH($this->fulltext) AGAINST('$this->key' IN BOOLEAN MODE) AS tot FROM $this->table WHERE MATCH($this->fulltext) AGAINST('$this->key' IN BOOLEAN MODE) ORDER BY tot DESC";   
39            $this->res = mysql_query($sql, $this->conn);   
40    
41        }   
42    
43        function CalcScore($tot)   
44        {   
45            switch($this->pf)   
46            {   
47                case "f":   
48                $key_array = explode(" ", $this->key);   
49                $this->total = count($key_array);   
50                return $tot . " / " . $this->total;   
51                break;   
52                case "p":   
53                $key_array = explode(" ", $this->key);   
54                $this->total = count($key_array);   
55                $output = intval($tot / $this->total * 100) . "%";   
56                return $output;   
57                break;   
58                default:   
59                $key_array = explode(" ", $this->key);   
60                $this->total = count($key_array);   
61                return $tot . " / " . $this->total;   
62    
63            }   
64        }   
65    
66}   
67
68     
69$search = new Search($key);   
70$search->GetResource();   
71while ($row = mysql_fetch_array($search->res))   
72{   
73    echo $row['milano,roma,url,via,descrizione,chiave'] . " score: " . $search->CalcScore($row['tot']);   
74}   
75            
76
77
78
79?>

Dump della tabella ...

 1-- Dump dei dati per la tabella `insegna`   
 2--   
 3
 4INSERT INTO `insegna` (`id`, `milano`, `roma`, `url`, `via`, `descrizione`, `chiave`) VALUES   
 5(27, 'Milano', '', 'www.ristorantedagiulia.it', '', 'Serata particolare e quindi decido di "provare" questo ristorante di cui ... Insomma, un''ottimo riferimento a Milano per il pesce fresco anzi, freschissimo. ...', 'milano Piazza gramsci Ristornate pesce milano milano pesce Ristorante di pesce milano ristorante di pesce a milano Ristorante specialita'' di pesce milano Ristorante specialita'' di pesce a milano Ristorante da Giulia milano milano, piazza gramsci Milano, piazza Gramsci Ristorante da Giulia Ristorante Pesce milano Ristorante di pesce a Milano Ristorante di pesce Milano'),   
 6(26, 'Milano', '', 'www.shannara.mi.it', '', 'Ristorante rustico ed elegante dove si potranno apprezzare specialità a base di pesce ispirate ai sapori della tradizionale cucina mediterranea esaltate con sempre nuovi accostamenti raffinati e stuzzicanti.\r<br>La nostra specialità è una ricercata selezione di frutti di mare serviti crudi...', 'milano via de andreis Ristornate pesce milano milano pesce Ristorante di pesce milano ristorante di pesce a milano Ristorante specialita'' di pesce milano Ristorante specialita'' di pesce a milano Ristorante shannara milano milano,via de andreis Ristorante shannara Ristorante Pesce milano Ristorante di pesce Milano'),   
 7(25, '', 'Roma', 'ristorantelebistrot', '', 'ristorante in roma garbatella, Le Bistrot, restaurants, rome, Cucina vegetariana , Piatti francesi....', 'Roma via delle sette chiese Ristornate vegetariano Roma Roma vegetariano Ristorante vegetariano Roma \r\nristorante vegetariano a Roma Ristorante specialita'' vegetariano Roma\r\n Ristorante specialita'' vegetariane Roma Ristorante le Bistrot via margutta Roma Ristorante vegetariano Roma Ristorante Le Bistrot'),   
 8(23, '', '', 'ww.gattenere.it', '', 'ppippo e brutto come martina', ''),   
 9(24, '', 'Roma', 'www.ilmarguttavegetariano.it', '', 'Il margutta è il ristorante dove il sapere , il colore e l''arte si sposano perfettamente, tutto servito con personale molto qualificato, siamo a via ...', 'Roma via margutta Ristornate vegetariano Roma Roma vegetariano Ristorante vegetariano Roma \r\nristorante vegetariano a Roma Ristorante specialita'' vegetariano Roma\r\n Ristorante specialita'' vegetariane Roma Ristorante il Margutta via margutta Roma Ristorante vegetariano Roma Ristorante MArgutta'),   
10(18, '', '', 'ww.gattenere.it', '', 'Che martina è brutta', ''),   
11(19, '', '', 'ww.gattenere.it', '', 'ppippo e brutto come martina', ''),   
12(20, '', '', 'ww.gattenere.it', '', 'ppippo e brutto come martina', ''),   
13(21, '', '', 'ww.gattenere.it', '', 'ppippo e brutto come martina', ''),   
14(22, '', '', 'ww.gattenere.it', '', 'ppippo e brutto come martina', ''),   
15(17, 'Milano', '', 'www.ristoranteilnodo.it', '', 'Il nodo è un Ristorante sardo che nasce a Milano nel 1999 in zona di Porta Vittoria, precisamente in via pietro Calvi.\r<br>Venite a provare le nostre specialità di Pesce.', 'Milano, via Pietro Calvi  Ristorante il Nodo Ristorante di pesce milano Il Nodo Ristorante di pesce milano pesce Milano Milano pesce Ristorante il nodo milano ristorante il nodo Milano specialita'' di pesce\r\n'),   
16(28, '', 'Roma', 'www.ristoranteginza.com', '', 'Ginza e Ginza Gold | Ristorante Giapponese Roma | \r<br>Ristorante giapponese Ginza: via E. Filiberto 251 - Roma.', 'Roma via Barberini Ristornate giapponese Roma Roma Sushi Ristorante di sushi Roma ristorante di sushi a roma Ristorante specialita'' Sushi Roma Ristorante specialita'' di Sushi a Roma Ristorante Ginza e Ginza Roma,via Barberini Roma, via Barberini Ristorante Ginza e Ginza Ristorante Giapponese Roma Ristorante Sushi Roma Ristorante Giapponese');

Percortesia sto impazzendo qualcuno mi spiega cosa sbaglio ..

Secondo me il problema sta qui ..ma non capisco che devo mettere in $row

1$search = new Search($key);  
2$search->GetResource();  
3while ($row = mysql_fetch_array($search->res))  
4{  
5echo $row['milano,roma,url,via,descrizione,chiave'] . " score: " . $search->CalcScore($row['tot']);  
6}

Condividi su:

Loggati o Registrati per replicare