nel caso si volessere utlizzare più tabelle?..![]()
nel caso si volessere utlizzare più tabelle?..![]()
nessuno?
grandissima pillola, la metto nei preferiti e non appena ho un attimo la studio ben benino!
non l'ho ancora provata, ma a sentimento dovrebbe lavorare anche con le join (inner, left)Originariamente inviato da d@lyn
nessuno?
You HAVE to assume your visitor is a maniac serial killer, out to destroy your application. And you have to prevent it.
I can accept failure, everyone fails at something - But I can't accept not trying.
ciao,
ho utilizzato il codice di questa pillola per il mio motore, ho notato che se cerco parole composte da meno di 4 lettere (quindi da 3 in giù) il motore non restituisce risultati (anche se le parole cercate esistono nel database) come mai?
http://dev.mysql.com/doc/refman/5.0/...ne-tuning.htmlOriginariamente inviato da luigi.84
ciao,
ho utilizzato il codice di questa pillola per il mio motore, ho notato che se cerco parole composte da meno di 4 lettere (quindi da 3 in giù) il motore non restituisce risultati (anche se le parole cercate esistono nel database) come mai?
The default minimum value is four characters;The minimum and maximum lengths of words to be indexed are defined by the ft_min_word_len and ft_max_word_len system variables. (See Section 5.1.3, “System Variables”.) The default minimum value is four characters; the default maximum is version dependent. If you change either value, you must rebuild your FULLTEXT indexes. For example, if you want three-character words to be searchable, you can set the ft_min_word_len variable by putting the following lines in an option file:
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
grazie per il chiarimento
edit:
ho utilizzato l'operatore "*" per cercare anche le parole parziali, ora stranamente il motore funziona anche con parole di meno di 4 caratteri
questa è la modifica
praticamente però non funziona sulla corrispondenza esattaCodice PHP:$this->DbConnectAndSelect();
$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";
cioè se io cerco "ala" (meno di 4 caratteri) e nel db ho "alan" (4 caratteri) la ricerca da risultati, ma se nel db ho la corrispondenza esatta "ala" (3 lettere) non la trova
visto che non ho accesso diretto per modificare le impostazioni di mysql mi dovrò accontentare![]()
ciao,
mi potete dire se c'è un modo per contare il totale dei risultati? se inserisco nella query il classico Count(id) as totale mi da errore (Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in)![]()
grazie
count() e' un raggruppamento di valori, quindi nella select metti il solo count() oppure devi fare un raggruppamento con group by, ma ti renderebbe una sola riga per gruppo.Originariamente inviato da luigi.84
ciao,
mi potete dire se c'è un modo per contare il totale dei risultati? se inserisco nella query il classico Count(id) as totale mi da errore (Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in)![]()
grazie
Meglio se fai una select count(*) seguita poi dalla select che ti estrae i valori.
La segnalazione di errore da valutare e' quella che rilascia mysql_query() e non quella di mysql_fetch_array() perche' questa e' solo una conseguenza dell'errore precedente.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
non ho capito quello che hai scritto nel primo caso, nel secondo mi pare di capire che ti riferisci alla select innestata, che però non mi va
mi restituisce questo errore (che non avevo mai vistoCodice PHP:$sql = "SELECT COUNT(*) AS totale FROM articoli WHERE id IN (SELECT *, MATCH($this->fulltext)
AGAINST('*$this->key*' IN BOOLEAN MODE) AS tot FROM categorie I INNER JOIN articoli C on I.id_cat = C.categoria
WHERE MATCH($this->fulltext) AGAINST('*$this->key*' IN BOOLEAN MODE)
ORDER BY tot DESC) GROUP BY id";
) Operand should contain 1 column(s)
fai due query select.
nella prima conti i record, nella seconda estrai le tue tuple....
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.