Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926

    Sostituire chiave di ricerca con carattere jolly

    Ho un form da cui iserisco delle chiavi di ricerca che poi vengono passate ad una pagina asp che legge i campi form e crea la query sql.

    Nel form vi sono presenti due select dinamiche che prelevano i valori che le popolano in modo dinamico da un database per fare una coppia marca-modello

    Vorrei che se l'utente seleziona 'Qualasiasi marca' e si popola ovviamente la seconda select con 'Qualsiasi modello' la ricerca venga effettuata su tutte le marce e modelli presenti in archivio.

    Io ho provato questa sintassi

    <%
    Dim rsR__MMColParam
    rsR__MMColParam = ""
    If (Request.Form("sel_marca") <> "") Then
    rsR__MMColParam = Request.Form("sel_marca")
    elseif (Request.Form("sel_marca") = "Tutte le marche") Then
    rsR__MMColParam = ""
    End If
    %>

    e la chiave di ricera sql è fatta cosi

    rsR.Source = "SELECT * FROM prodotti WHERE marca = '" + Replace(rsR__MMColParam, "'", "''") + "' AND modello = '" + Replace(rsR__MMColParam1, "'", "''") + "' AND descrizione LIKE '%" + Replace(rsR__MMColParam2, "'", "''") + "%' AND provincia LIKE '%" + Replace(rsR__MMColParam3, "'", "''") + "%' AND genere = '" + Replace(rsR__MMColParam4, "'", "''") + "'"

    Il problema è che se metto Qualsiasi marca/qualsiasi modello non mi trova nulla....

    Ho provato anche con questo

    rsR__MMColParam = "*"

    ma niente da fare...esiste un carattere jolly per queste ricerche generiche?

    Grazie
    Luca

  2. #2
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Ci vuole ordine e disciplina e chi non vuole restare qui , vada in collina.

    Prova:
    codice:
    Function SqlStr(Field,Value,Cong)
    	if Value<>"" then SqlStr= Field & " = '" & Replace(Value, "'", "''")& "' " & Cong & " "
    End Function
    
    Function SqlLike(Field,Value,Cong)
    	if Value<>"" then SqlLike = Field & " LIKE '%" & Replace(Value, "'", "''") & %' "  & Cong & " "
    End Function
    
    
    rsR.Source = "SELECT * FROM prodotti WHERE " &_
    SqlStr("marca",rsR__MMColParam,"AND") &_
    SqlStr("Modello",rsR__MMColParam1,"AND") &_
    SqlLike("Descrizione",rsR__MMColParam2,"AND")  &_
    SqlLike("Provincia",rsR__MMColParam3,"AND")&_
    SqlStr("Genere",rsR__MMColParam4,"")

  3. #3
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    Grazie per la tua attenzione...

    Non riesco a capire bene il codice che mi hai suggerito..

    A me serve che, quando nel campo Marca e nel campo Modello ci sono i valori Qualsiasi marca e Qualsiasi modello la ricerca venga effettuata su tutti i record come se fosse un *

    Da quanto capisco dal codice (anche se poco...) mi sembra che non faccia questo, o mi sbaglio??

    Grazie ancora
    Luca

  4. #4
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Mettere la condizione Descrizione Like '%' o non metterla è la stessa cosa. Non sei d'accordo? Tutti significa nessuna condizione, nessun filtro. Quindi quando selezionano qualsiasi, semplicemente non devi mettere nulla.

  5. #5
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    il problema è che DEVO passare il campo marca e modello con la stringa Qualsiasi marca e Qualsiasi modello, non posso mandare una stringa vuota altrimenti le select dinamiche impazziscono..

    Ho bisogno che, quando la pagina asp di ricerca che elabora le stringhe dei campi form trova la parola Qualsiasi marca e Qualsiasi modello faccia una ricerca generica, mentre tratti le altre stringh in modo corretto es. Fiat Punto

    Sperdo di essere stato chiaro oppure mi stai dicendo la stessa cosa ma non riesco a capirla io...

    Grazie
    Luca

  6. #6
    ho messo sotto stress il mio neurone, e mi ha detto che se faccio cosi' dovrebbe funzionare


    codice:
    sSQL = "SELECT elenco_campi FROM tabella"
    IF stringa_ricerca <> "Qualsiasi marca" Then
       sSQL = sSQL & " WHERE Marca='" & stringa_ricerca & "'"
    End If

  7. #7
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    Originariamente inviato da optime
    ho messo sotto stress il mio neurone....[/CODE]
    l'unico rimasto?
    Tutti vogliono parlare, nessuno sa ascoltare.

  8. #8
    Originariamente inviato da Gioba66
    l'unico rimasto?
    io non sono come te, che perdi neuroni a go-go. E' l'unico che abbia mai avuto

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.