Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412

    Ricerca parola su più tabelle

    Ciao ragazzi, ecco il quesito:

    Ho un db che si chiama data.mdb. Al suo interno, ci sono tre tabelle:

    prodotti_it
    chisiamo_it
    notizie_it

    Ognuna delle tre tabelle ha un solo campo chiamato TESTO all'interno del quale c'è il contenuto testuale che verrà visualizzato nelle pagine PRODOTTI, CHI SIAMO E NOTIZIE.

    Vorrei mettere un campo di ricerca legato al database....

    Ho il form:
    -------------------------------------------------------------------

    <form name="form1" method="post" action="buttare.asp?cerca=ok">
    <input type="text" name="parola" id="parola">
    <input type="submit" value="Cerca">
    </form>

    <%
    parola=request.form("parola")
    ok=request.QueryString("cerca")
    if ok <>"" then

    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data.mdb")
    Conn.Open strConn

    sql = "select * from chisiamo_it where testo LIKE '%" & parola & "%' union select * from prodotti_it where testo LIKE '%" & parola & "%' union select * from notizie_it where testo LIKE '%" & parola & "%'"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open sql, conn, 3,3

    if not RS.EOF then
    response.write rs("testo")&"
    <hr>"
    else
    response.write "ciao"
    end if

    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing
    end if
    %>

    con questa stringa, vorrei interrogare le tre tabelle del db:
    -----------------------------------------------------------------------------------
    sql = "select * from chisiamo_it where testo LIKE '%" & parola & "%' union select * from prodotti_it where testo LIKE '%" & parola & "%' union select * from notizie_it where testo LIKE '%" & parola & "%'"


    Poi vorrei che venissero visualizzati i risultati nel seguente modo:

    testo trovato con la ricerca

    Mi aiutate?????????????

    Sarà che è venerdì sera, ma non ne vengo fuori.... )

    Grazie in anticipo... e buon WE

  2. #2
    Potresti modificare la query così:
    codice:
    select testo, 'chisiamo_it' AS tabella from chisiamo_it where testo LIKE '%" & parola & "%' union select testo, 'prodotti_it' AS tabella from prodotti_it where testo LIKE '%" & parola & "%' union select testo, 'notizie_it' AS tabella from notizie_it where testo LIKE '%" & parola & "%'
    In questo modo hai un campo chiamato 'tabella' che contiene il nome della tabella di origine del record. Non ho verificato il funzionamento ma dovrebbe andare...
    Chi non cerca trova.

  3. #3
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    grazie per la risposta! e per la seconda parte della domanda? come li visualizzo in modo tale che mi creino il collegamento:

    testo trovato con la ricerca

  4. #4
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    up

  5. #5
    Più o meno così:
    Chi non cerca trova.

  6. #6
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    Ma con rs non richiamo il nome del campo all'interno della tabella??? Io devo fare in modo che il testo visualizzato mi rimandi ad una delle tre tabelle....

  7. #7
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    ecco a che punto sono:

    sql = "select testo, 'chisiamo_it' AS tabella from chisiamo_it where testo LIKE '%" & parola & "%' union select testo, 'prodotti_it' AS tabella from prodotti_it where testo LIKE '%" & parola & "%'"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open sql, conn, 3,3

    if not RS.EOF then
    do while not(rs.eof)
    response.write rs("testo")&"
    <hr>"
    rs.movenext
    loop
    else
    response.write "NESSUN RECORD"
    end if

    A questo punto, mi serve che cliccando sul risultato, mi vada in una pagine in cui si apra la tebella che contiene il testo che mi è stato visualizzato...

  8. #8
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    Ad ogni ciclo di DO WHILE, non c'è un modo per sapere quale tabella si sta aprendo?

  9. #9
    La query come modificata nel mio post precedente ha un campo creato dinamicamente chiamato "tabella", il quale contiene per l'appunto il nome della tabella di origine del record.
    Se esegui quella query ottieni qualcosa del genere:
    codice:
    testo      |tabella    |
    -----------+-----------|
    bla bla... |prodotti_it|
    aaaa...    |prodotti_it|
    fsefsdf    |prodotti_it|
    refrgfgr   |chisiamo_it|
    regreg     |chisiamo_it|
    ...        |notizie_it |
    Sta a te utilizzare opportunamente quel campo per costruire il link che necessiti.
    Chi non cerca trova.

  10. #10
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    Intanto grazie per la risposta!

    Ho inserito:

    response.write rs("testo")&"
    tabella: "&tabella&"
    <hr>"

    per vedere, ad ogni ciclo, il nome della tabella, ma non mi da nulla...

    cosa sbaglio?

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.