Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: motore di ricerca

  1. #1

    motore di ricerca

    Ciao ragazzi, avrei un problema:
    ho realizzato un motore di ricerca interno per un sito di notizie, in ASP.

    Nel mio database vi sono tre tabelle: news, speciali, opinioni.

    Sono riuscito a fare cercare il motore all'interno di una singola tabella, ma vorrei che il motore cercasse in tutte e tre! Che fare?

    Vi incollo il codice della pagina dei risultati di apertura del database

    <%
    Testo=request.form("Testo")
    if Testo="" then Testo=request.queryString("Testo")
    if Testo="" then Testo="%"
    Testo=replace(Testo,"'","''")

    RecordsPerPagina = 20
    page = Request("page")
    if page="" then page=1

    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("mdb-database/db1.mdb")
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL="select * from news where Testo like '%" & Testo & "%' and Data like '%" & Data & "%' and Titolo like '%" & Titolo & "%'ORDER BY ID DESC"
    rs.Open strSQL,cn,1
    TotalRecords = rs.RecordCount
    If TotalRecords=0 then
    Response.Write "

    Nessun risultato trovato</P>"
    Else
    Response.Write "

    <font color=#FF0000> Ricerca effettuata: " & TotalRecords & " articoli trovati</font></P>"
    %>


    Sarà un problema di sintassi, nel senso che si dovrebbe dire

    strSQL="select * from news & speciali & opinioni where Testo like '%" & Testo & "%' and Data like '%" & Data & "%' and Titolo like '%" & Titolo & "%'ORDER BY ID DESC"

    O qualcosa di simile?

    Grazie per il vostro supporto

  2. #2
    in realtà la cosa è un tnatino più complessa:
    intanto devi praticamente inserire i dati in colonne che abbiano un nome uguale per tutte le tabelle, poi per unire il tutto devi usare il comando UNION.
    ti faccio un esempio:

    Select NewsTitolo AS Titolo, NewsDescription AS Description, ...
    UNION
    Select SpecialiTitolo AS Titolo , SpecialiDescription AS Description...
    UNION
    Select OpinioniTitolo AS Titolo , OpinioniDescription AS Description...

    Spero di essermi spiegato...
    Chi Non RisiKa noN RosiKa

  3. #3
    si fondamentalmente è così, per fortuna le colonne hanno nome uguale, quindi siamo fortunati!

    Ondepercui, la sintassi giusta del select è così? Proviamo...

    strSQL="select * newsTitolo AS Titolo, newsAutore AS Autore, newsTesto AS Testo UNION specialiTitolo AS Titolo, specialiAutore AS Autore, specialiTesto AS Testo ORDER BY ID DESC"

    Sicuramente la mia è una sintassi errata... ma spero in un tuo supporto!

  4. #4
    Ho sbagliato la sintassi...mi dà errore!

    Mica potresti darmi una mano a scriverla?

  5. #5
    L'errore che spunta dopo che ho inserito la sintassi di sopra è:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

    ODBC driver does not support the requested properties.

    /risultati.asp, line 108


    alla linea 108 c'è
    rs.Open strSQL,cn,1

    il codice completo lo si può vedere sopra...
    Help please!

  6. #6
    strSQL="select * newsTitolo AS Titolo, newsAutore AS Autore, newsTesto AS Testo UNION specialiTitolo AS Titolo, specialiAutore AS Autore, specialiTesto AS Testo ORDER BY ID DESC"

    Per quello che vede l'unico errore è l'asterisco...

    Non
    Select * newsTitolo....
    ma
    Select newsTitolo...

    Fammi sapere...
    Chi Non RisiKa noN RosiKa

  7. #7
    azz non funziona!
    L'errore è sempre quello, forse è una questione di apici o virgolette varie, tipo

    strSQL="select newsTitolo AS 'Titolo', newsAutore AS 'Autore', newsTesto AS 'Testo' UNION specialiTitolo AS 'Titolo', specialiAutore AS 'Autore', specialiTesto AS 'Testo' ORDER BY ID DESC"


    O qualche altro simbolo al posto degli AS? O che?
    ... provo così, ma se hai qualche idea è la benvenuta!

  8. #8
    ... manco con gli apici funziona...



  9. #9
    no... gli apici non centrano nulla...
    una domanda: i campi sono tutti dello stesso tipo?
    Chi Non RisiKa noN RosiKa

  10. #10
    prova così:

    Dim strSQL
    strSQL = "select newsTitolo AS Titolo, newsAutore AS Autore, newsTesto AS Testo" & chr(13)
    strSQL = strSQL & "UNION" & chr(13)
    ....
    Chi Non RisiKa noN RosiKa

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 © 2026 vBulletin Solutions, Inc. All rights reserved.