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

    motore di ricerca con più campi

    Buongiorno a tutti,
    navogando sul motore di ricerca ho trovato questo topic che spiegava come creare un motore di ricerca con più campi a combinazione.
    In pratica se ho varie scelte tipo marca, modello, prezzo di una macchina posso fare la ricerca inserendo tutti, o alcuni di questi dati.
    il codice è questo:

    <%
    ' INIZIO IL CONTROLLO
    set RsModello = Server.CreateObject("ADODB.Recordset")
    sqlmodello = "Select * from Auto"
    where = ""
    sep = ""
    if stato <> "Tutti" then
    where = "Stato=" & stato
    sep = "and"
    end if
    if categoria <> "Tutte" then
    where = where & sep & "Categoria=" & categoria
    sep = "and"
    end if
    if marca <> "Tutte" then
    where = where & sep & "Marca=" & marca
    sep = "and"
    end if
    if modello <> "Tutti" then
    where = where & sep & "Modello=" & modello
    sep = "and"
    end if
    if prezzo <> "Tutti" and prezzo <> "4" then
    where = where & sep & "Prezzo <=" & prezzo
    sep = "and"
    end if
    if prezzo = "4" then
    where = where & sep & "Prezzo >=" & prezzotot
    sep = "and"
    end if
    if anno <> "Tutti" then
    where = where & sep & "Anno=" & anno
    sep = "and"
    end if
    if carburante <> "Tutti" then
    where = where & sep & "Carburante=" & carburante
    sep = "and"
    end if
    '...
    '...

    if where <>"" then
    sqlmodello = sqlmodello & " WHERE " & where
    end if
    RsModello.open sqlmodello, connobj
    %>

    Quando per la ricerca utilizzo la scritta Tutti mi trova tutte le vetture nel database,
    se per caso per Stato inserisco Nuovo, mi da questo errore:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
    [Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 1.
    /checksearch1.asp, line 60


    Se per caso faccio una ricerca per prezzo tutto funziona, c'è da dire che nel database in access il campo prezzo è Numerico mentre tutti gli altri campi sono Testo...

    Qualcuno ci capisce qualcosa?

    Un uomo senza donna è come un fianco senza spina...

  2. #2
    immagino tu debba usare gli apici per le ricerche alfanumeriche...

  3. #3
    Credo di si optime,
    ma sinceramente non so dove metterle. Ho provato ad inserirle ma mi dava sempre errore.

    mi sai dire dove si inseriscono nello script

    Thanks
    Un uomo senza donna è come un fianco senza spina...

  4. #4
    non è difficile.

    ad es., se modello non è numerico, fai così


    if modello <> "Tutti" then
    where = where & sep & "Modello='" & modello & "'"
    sep = "and"
    end if

    that easy!

  5. #5
    Ci ho provato, ma mi da questo tipo di errore:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nella stringa nell'espressione della query 'Modello='A4'.
    /checksearch1.asp, line 60


    Sono PARADISPERATO...
    Un uomo senza donna è come un fianco senza spina...

  6. #6
    fatti stampare la stringa sql prima di eseguirla, così vedo cosa hai costruito...

  7. #7
    se non ti dispiace ci sentiamo domani ok?
    Un uomo senza donna è come un fianco senza spina...

  8. #8
    ciao optime,
    Cosa intendi per :

    fatti stampare la stringa sql prima di eseguirla, così vedo cosa hai costruito

    Ora ti mando tutto...
    Un uomo senza donna è come un fianco senza spina...

  9. #9
    Ciao a tutti in ascolto,
    Perchè ricevo questo errore qui...:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nella stringa nell'espressione della query 'Categoria='Berline'.
    /checksearch1.asp, line 61



    Da cosa può essere dato?
    Un uomo senza donna è come un fianco senza spina...

  10. #10
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Originariamente inviato da domenico.nardo
    ciao optime,
    Cosa intendi per :

    fatti stampare la stringa sql prima di eseguirla, così vedo cosa hai costruito

    Ora ti mando tutto...
    intende questo:

    codice:
    sqlmodello = sqlmodello & " WHERE " & where
    response.write sqlmodello:response.end
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

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.