Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    ricerke fulltext su + tabelle

    Salve ho un problema:

    Nn riesco a fare delle ricerke fulltext su + tabelle.

    per ora sto utilizzando le ricerke con like in questo modo:

    SELECT poesie.*,poeti.* FROM poesie,poeti WHERE (poesie.autore=poeti.id) AND (poesie.titolo like '%".mysql_escape_string($_GET["REQ"])."%' or poesie.testo like '%".mysql_escape_string($_GET["REQ"])."%' OR poeti.nome like '%".mysql_escape_string($_GET["REQ"])."%') order by poeti.nome,poesie.titolo

    Se vorrei fare la stessa cosa con un query fulltext si può?

  2. #2

  3. #3
    ehm
    dovresti fare una inner join o una left join se queste tabelle sono correlate e le agganci in base al campo che le unisce

    se le tabelle non hanno nulla a che fare, credo, dovresti fare due o più query diverse senno fonde tutto

    cmq c'è un articolo su freephp che tratta proprio le ricerche fulltext

  4. #4
    Il fatto è ke nn uso quasi mai ne inner join ne left join com ora ci provo grazie

  5. #5
    ecco questa è la query di prova ke ho fatto:

    codice:
    SELECT poesie.titolo, poesie.autore, poesie.testo, poeti.id, poeti.nome, poeti.vita, 
    MATCH (
    poesie.titolo, poesie.testo, poeti.nome, poeti.vita
    )
    AGAINST (
    'amore'
    ) AS rilevanza
    FROM poesie
    INNER JOIN poeti ON poesie.autore = poeti.id
    WHERE MATCH (
    pesie.titolo, poesie.testo, poeti.nome, poeti.vita
    )
    AGAINST (
    'amore'
    )
    ORDER BY rilevanza DESC 
    LIMIT 0 , 30
    l'ho eseguita da phpmyadmin il risultato è un errore ke mi dice questo:

    Messaggio di MySQL:
    #1210 - Argomenti errati a MATCH

  6. #6
    ho provato anke a fare così:


    SELECT poesie.titolo as tit, poesie.autore, poesie.testo as poe, poeti.id, poeti.nome as autor, poeti.vita as biografia,
    MATCH (
    tit, poe, autor, biografia
    )
    AGAINST (
    'amore'
    ) AS rilevanza
    FROM poesie
    INNER JOIN poeti ON (poesie.autore = poeti.id)
    WHERE MATCH (
    tit, poe, autor, biografia
    )
    AGAINST (
    'amore'
    )
    ORDER BY rilevanza DESC
    LIMIT 0 , 30


    ma mi da un altro errore cioè:


    #1054 - Colonna sconosciuta 'tit' in 'field list'

  7. #7
    Se nn si può fare ditemelo così finisco di impazzire

  8. #8
    ma non si capisce nemmeno il problema in maniera corretta

    nel primo post dice numero di argomenti errato e nel secondo passi un campo, da qualche parte, che non esiste

    cosa ci vedi di errori strani ed impossibili?

  9. #9
    questa è la struttura della tabella poesie

    codice:
    CREATE TABLE `poesie` (
      `id` int(11) NOT NULL auto_increment,
      `autore` int(11) NOT NULL default '0',
      `titolo` varchar(255) NOT NULL default '',
      `testo` text NOT NULL,
      `volte` int(11) NOT NULL default '0',
      `mod` int(11) NOT NULL default '1',
      PRIMARY KEY  (`id`),
      UNIQUE KEY `titolo_3` (`titolo`,`autore`),
      FULLTEXT KEY `titolo` (`titolo`,`testo`)
    ) TYPE=MyISAM AUTO_INCREMENT=1486 ;
    questa è la struttura della tabella poeti

    codice:
    CREATE TABLE `poeti` (
      `id` int(11) NOT NULL auto_increment,
      `nome` varchar(255) NOT NULL default '',
      `vita` text NOT NULL,
      `immagine` varchar(255) NOT NULL default '',
      PRIMARY KEY  (`id`),
      UNIQUE KEY `nome_2` (`nome`),
      FULLTEXT KEY `nome` (`nome`,`vita`)
    ) TYPE=MyISAM AUTO_INCREMENT=132 ;


    le due tabelle sono unite dai campi poesie.autore e poeti.id


    vedi questo
    codice:
    SELECT poesie.titolo, poesie.autore, poesie.testo, poeti.id, poeti.nome, poeti.vita, 
    MATCH (
    poesie.titolo, poesie.testo, poeti.nome, poeti.vita
    )
    AGAINST (
    'amore'
    ) AS rilevanza
    FROM poesie
    INNER JOIN poeti ON poesie.autore = poeti.id
    WHERE MATCH (
    pesie.titolo, poesie.testo, poeti.nome, poeti.vita
    )
    AGAINST (
    'amore'
    )
    ORDER BY rilevanza DESC 
    LIMIT 0 , 30
    in questa query nn vedo niente di sbagliato, intanto mi da l'errore:
    #1210 - Argomenti errati a MATCH

  10. #10

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.