Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Ricerca in + tabelle

  1. #1

    Ricerca in + tabelle

    Salve a tutti !
    sto cercando di realizzare un motore di ricerca interno al sito...niente di speciale, una cosa semplice che attraverso un form ed un pulsante cerca mi restituisca dei risultati sui valori immessi.
    fin'ora ho realizzato uno scriptino che estrae e visualizza la parole ricercate in una sola tabella.
    però le tabelle in cui devo ricercare sono 6!! e se provo ad aggiungere solo una tabella nel mio script mi rende dei risultati assurdi.
    inoltre vorrei sapere come fare per escludere dalla ricerca le paroli comuni, come ad es. gli articoli o le congiunzioni...

    grazie


  2. #2
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    ...

    per quanto riguarda l'esclusione delle parole comuni io ho fatto così:

    1) salvo l'elenco delle parole che l'utente ha immesso in un array

    2) elimino subito dopo tutti gli elementi dell'array (e quindi le parole cercate) composti da 1,2 o 3 caratteri. da questo tipo di esclusione ho tenuto fuori soltanto la parola "ici", visto che era l'unica parola importante del mio sito composta da tre lettere.

    sugli elementi rimasti puoi effettuare i controlli che vuoi ed alla fine avrai un array contenente le parole "buone" da cercare.
    a quel punto attivi un ciclo "for" che per ogni parola effettua lo script del motore di ricerca.

    ------------------------------------------------------------------

    per quanto riguarda le tabelle ho creato un'ulteriore tabella (ma andrebbe bene anche un'array multidimensionale) in cui memorizzo tutte le query da effettuare sulle tabelle dei contenuti del sito.

    ad esempio, se devo cercare nelle tabelle:

    1 - eventi (campi: serial , descrizione)
    2 - news (campi: serial , notizia)
    3 - downloads (campi: serial , nome_file)

    creo una quarta tabella chiamata "fonte_dati" che contiene i campi: serial,query (esemplifico molto) riempiti manualmente:

    serial = 1 query = "Select descrizione from eventi where descrizione"

    serial = 2 query = "Select notizia from news where notizia"

    serial = 3 query = "Select nome_file from downloads where nome_file"

    a questo punto avendo l'array di parole buone, con un ciclo for principale prendi gli elementi di tale array e mediante un ciclo interno per ogni parola effettui tutte le query memorizzate nella tabella sovrastante, aggiungendo " like ('%$parola_buona%')".

    tutti i risultati ottenuti vengono agganciati in un array di risultati, che alla fine conterrà tutti i riusltati delle query e quindi della ricerca.

    se aggiungi una tabella nuova basta aggiungere la relativa select alla tabella, senza modificare + il codice.

    -------------------------------------------------------------------

    io da newbie ho proceduto così, se qualche esperto conosci metodi più veloci e meno macchinosi mi farebbe un gran favore a postare i modi in cui opera.

    spero di essere stata chiara

  3. #3
    ti ringrazio aeterna...io al posto del ciclo for ho realizzato un cliclo while, ma solo perchè riesco a gestirlo meglio di quello di for!!

    ora mi metto all'opera seguendo i tuoi preziosi suggerimenti anche se la cosa mi pare un pò laboriosa, almeno per le mie capacità!


  4. #4
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    ...

    come dici tu tra for e while in genere cambia poco, per cui vai tranquillo. per quanto riguarda il metodo che uso non è affatto difficile (sono sicura tu sia più bravo di me in php); il problema è soltanto farlo capire a parole!

    non so se ci siano metodi migliori, ma intanto puoi iniziare; mal che vada avrai fatto un pò di pratica e capito come NON si deve procedere,

    bye

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.