Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 34
  1. #21
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Originariamente inviato da Razorblade
    Ciao,
    sei sicura che le tabelle abbiano gli indici fulltext? I nomi dei campi che sono negli indici rispecchiano i nomi dei campi nella tabella?
    Ho provato a crearli sia manualmente che direttamente con phpMyAdmin, questo è quello che risulta, per esempio, tra gli indici della tabella "libri"


    Quando provi ad eseguire delle query, inserisci in MATCH tutti i campi inseriti nell'indice in modo corretto?
    Questo è quello che inserisco nella query di "libri" (che ha un solo record con titolo e testo "libro")
    Codice PHP:
    "SELECT * FROM libri WHERE MATCH (titolo, testo) AGAINST('libro')"
    Hai effettuato repair table su ognuna di queste tabelle?
    Le tabelle sono MyIsam?
    Facci sapere
    Sì...

  2. #22
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Prova anche questa

    Codice PHP:
    SELECT FROM libri WHERE MATCH (titolotestoAGAINST('libro*' IN BOOLEAN MODE); 
    Aggiornaci.

    Ciao

  3. #23
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Quando la query la faccio direttamente in phpmyadmin, la spiegazione della query che mi da risulta essere questa:

    id select_type table type possible_keys key key_len ref rows Extra
    1 SIMPLE libri fulltext libri libri 0 1 Using where

    La chiave quindi la usa anche! Ma mi dice:
    MySQL ha restituito un insieme vuoto (i.e. zero righe).

  4. #24
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Originariamente inviato da Razorblade
    Prova anche questa

    Codice PHP:
    SELECT FROM libri WHERE MATCH (titolotestoAGAINST('libro*' IN BOOLEAN MODE); 
    Aggiornaci.

    Ciao
    Visualizzazione record 0 - 0 (1 Totali, La query ha impiegato 0.0005 sec)
    SELECT *
    FROM libri
    WHERE MATCH (
    titolo, testo
    )
    AGAINST (
    'libro*'
    IN BOOLEAN
    MODE
    )

  5. #25
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    La query LIKE dello stesso termine quanti risultati restituisce?

  6. #26
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Ho fatto un'altra prova! Ho tolto dal testo "

    " e "</p>" che racchiudevano la parola "Libro" e mi trova il record!
    Quello che non comprendo è perché non l'abbia visto nel titolo!

  7. #27
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Allora la query che avresti dovuto eseguire è questa

    Codice PHP:
    SELECT FROM libri WHERE MATCH (titolotestoAGAINST('*libro*' IN BOOLEAN MODE); 

  8. #28
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Perfetto!!! Funziona!!!

    Non è che saresti così gentile da spiegarmi perché "IN BOOLEAN MODE"?

  9. #29
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Un'altra cosa... se volessi cercare lo stesso record in tutte le tabelle del database?
    Immagino di non poter usare UNION SELECT...

  10. #30
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    La ricerca fulltext di tipo boolean ti da la possibilità di utilizzare operatori come +, -, *, <, > le parentesi ecc, vedi l'articolo che avevo linkato qualche post prima.
    Inoltre volendo puoi ordinare il tuo resulset per rilevanza.

    Non ho ben capito la tua altra richiesta, le tabelle sono tutte uguali come struttura?

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.