Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    ricerca con 3 campi non obbligatori

    Io recupero queste tre variabili per una ricerca:
    strTipo = Request("tipo")
    strDim = Request("dimensione")
    strCol = Request("colore")

    Non è necessario scegliere i tre valori,ma l'utente è libero di decidere se scegliere 1, 2 o 3 opzioni. Oppure sceglierne 2...

    Come posso fare la query di ricerca in modo tale da soddisfare tutte le possibilità?
    L'unico modo che mi viene in mente è di fare tante if quante sono le possibilita. Ad esempio:
    codice:
    If strTipo <> "" And strDim = "Dimens" And strCol = "Colore" Then
    		   strTapSQL = "SELECT * FROM "&strTapTablePrefix&"Prodotti WHERE Categoria = '"&strTipo&"' "
    		ElseIf strTipo = "" And strDim <> "" And strCol = "" Then
    		   strTapSQL = "SELECT * FROM "&strTapTablePrefix&"Prodotti WHERE Dimensione = '"&strDim&"' "
    		Else
    		   strTapSQL = "SELECT * FROM "&strTapTablePrefix&"Prodotti WHERE Colore LIKE '"&strCol&"' "
    		End If
    Ma credo che ci sia un modo ancora più veloce.
    Come potrei fare?

  2. #2
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994

    Re: ricerca con 3 campi non obbligatori

    codice:
    wherecondition =""
    If strTipo <> "" then
       wherecondition = " Categoria = '"&strTipo&"'"
    end if
    If strDim <> "" then
       if wherecondition  <> "" then
          wherecondition = wherecondition & " AND "
       end if
       wherecondition = wherecondition & " Dimensione = '"& strDim &"'"
    end if
    If strCol <> "" then 
      if wherecondition  <> "" then
          wherecondition = wherecondition & " AND "
      end if
       wherecondition = wherecondition & " Colore LIKE '"&strCol&"'"
    end if
    
    strTapSQL = "SELECT * FROM "&strTapTablePrefix&"Prodotti WHERE " & wherecondition
    mmm l'ho scritto al volo...una cosa del genere?
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  3. #3
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Oh, grande... ci stavo arrivando anche io, ma questa è ancora più semplice... grazie

  4. #4
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Mi sono accorto che se per caso i 3 campi risultano vuoti mi da errore:
    Microsoft JET Database Engine (0x80040E14)
    Errore di sintassi nella proposizione WHERE

    Come posso fare?
    I valori li passo da tre select

  5. #5
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    Originariamente inviato da semolino
    Mi sono accorto che se per caso i 3 campi risultano vuoti mi da errore:
    Microsoft JET Database Engine (0x80040E14)
    Errore di sintassi nella proposizione WHERE

    Come posso fare?
    I valori li passo da tre select
    fai così dopo le if metti:
    codice:
    strTapSQL = "SELECT * FROM "&strTapTablePrefix&"Prodotti"
    If wherecondition <> ""
    strTapSQL = strTapSQL &  " WHERE " & wherecondition
    End If
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  6. #6
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Grazie, in questo modo però se passo i valori vuoti mi estrae tutti i record... invece dovrebbe non trovare niente. :master:

  7. #7
    se non hai selezionato niente vuol dire che vuoi tutto....

  8. #8
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    In teoria se l'utente non seleziona niente dai campi select vorrei far uscire un messaggio. Faccio un controllo a priori sulla valorizzazione dei campi. Grazie

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.