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

    Motore ricera asp e database access

    Salve a tutti,
    ho un piccolo problema con un motore di ricerca.
    funziona tutto perfettamente ma non riesco a fare in modo che quando il valore di ricerca è vuoto la ricerca dovrebbe mostrare tutti i dati.
    è difficile da spiegare posto il codice

    Codice form di ricerca:

    <form id="form1" name="form1" method="post" action="ricerca.asp">
    <label>
    Marca
    <select id="marca" name="marca">
    <option>---</option>
    <option value="Bmw">BMW</option>
    <option value="Ferrari">Ferrari</option>
    </select>
    </label>
    <label>Alimentazione
    <select name="alimentazione" id="alimentazione">
    <option>---</option>
    <option>benzina</option>
    <option>diesel</option>
    </select>
    </label>
    <label>Anno
    <select name="anno" id="anno">
    <option>---</option>
    <option value="2000">2000</option>
    <option value="2001">2001</option>
    <option value="2002">2002</option>
    <option value="2003">2003</option>
    <option value="2004">2004</option>
    </select>
    </label>



    <label>
    <input type="submit" name="invio" id="invio" value="Ricerca" />
    </label>
    </p>
    </form>

    codice asp ricerca:
    <%
    Dim marca, alimentazione, anno
    alimentazione = Replace(Request.Form("alimentazione"), "'", "")
    anno = Replace(Request.Form("anno"), "'", "")
    marca = Replace(Request.Form("marca"), "'", "")
    if marca = "" then
    Response.write "Errore. Non hai inserito nessun termine da cercare"
    Response.end
    end if
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("/mdb-database/database.mdb")
    Conn.Open strConn
    sql = "SELECT * FROM auto where marca like '%" & marca & "%' AND anno like '%" & anno & "%' AND alimentazione like '%" & alimentazione & "%' "
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn
    if Rs.EOF then%>
    <%
    Response.write "Nessun risultato trovato!"
    else
    do while not(rs.eof)
    %>
    </div>
    <table width="750" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td height="173"><table width="782" height="146" border="0" align="center" cellpadding="0" cellspacing="0" id="link">
    <tr>
    <td width="173" rowspan="4"><table width="160" height="120" border="2" align="center" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
    <tr>
    <td width="167" align="center">">[img]<%=rs([/img]" alt="" name="img1" width="150" height="110" border="0" id="img1" /></td>
    </tr>
    </table></td>
    <td width="11" rowspan="4"></td>
    <td width="598" height="34"><table width="590" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td><span class="Stile2"><%=rs("modello")%></span></td>
    </tr>
    </table></td>
    </tr>
    <tr>
    <td height="38"><table width="590" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td width="592" height="20"><span class="Stile3">Descrizione:</span></td>
    </tr>
    <tr>
    <td class="Stile5"><div class="Stile4"><%=rs("descrizione")%></div></td>
    </tr>
    </table></td>
    </tr>
    <tr>
    <td height="20"><table width="590" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td width="610" class="Stile3">Prezzo:</td>
    </tr>
    <tr>
    <td class="Stile4"><%=rs("prezzo1")%></td>
    </tr>
    </table></td>
    </tr>
    <tr>
    <td height="19"></td>
    </tr>
    </table></td>
    </tr>
    <tr>
    <td height="2"><hr /></td>
    </tr>
    </table>
    <%
    rs.movenext
    loop
    End If
    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing
    %>

    se il valore della marca è vuoto (quindi prima opzione) come mostro tutte le marche però con alimentazione = diesel e anno = 2000????

    Oddio

    help me please

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova cosi:
    codice:
    sql = "SELECT * FROM auto where marca = '" & marca & "' or anno = '" & anno & "' or alimentazione = '" & alimentazione & "'"
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    ciao andrea grazie per la risposta,
    ma così facendo se io scelgo ad esempio BMW e poi selgo benzina come seconda opzione nei risultati vengono fuori anche altre auto a benzina e non solo quelle di marca BMW io vorrei invece che se scelgo ad esempio BMW e poi Benzina nei risultati mi mostri solo le macchine a benzina di marca BMW. Forse e poco chiaro il concetto ma non saprei come spiegartelo.

    Provo a fare un piccolo schemino


    Marca - Alimentazione - Anno

    BMW - Benzina - 2000 (dovrebbe mostrare solo auto BMW a benzina di anno 2000)

    vuoto - Benzina - vuoto (dovrebbe mostrare tutte le auto a benzina di tutti gli anni)

    vuoto - Diesel - 2000 (dovrebbe mostrare tutte le auto diesel dell'anno 2000)

    vuoto - vuoto - 2005 (mostra tutte le auto del 2005)

    vuoto - vuoto - vuoto (mostra tutti i record)


    Forse così è un pò più chiaro,

    Grazie anticipate!!!

  4. #4
    metti AND al posto di OR

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da gianluca8730
    ciao andrea grazie per la risposta,
    ma così facendo se io scelgo ad esempio BMW e poi selgo benzina come seconda opzione nei risultati vengono fuori anche altre auto a benzina e non solo quelle di marca BMW io vorrei invece che se scelgo ad esempio BMW e poi Benzina nei risultati mi mostri solo le macchine a benzina di marca BMW. Forse e poco chiaro il concetto ma non saprei come spiegartelo.

    Provo a fare un piccolo schemino


    Marca - Alimentazione - Anno

    BMW - Benzina - 2000 (dovrebbe mostrare solo auto BMW a benzina di anno 2000)

    vuoto - Benzina - vuoto (dovrebbe mostrare tutte le auto a benzina di tutti gli anni)

    vuoto - Diesel - 2000 (dovrebbe mostrare tutte le auto diesel dell'anno 2000)

    vuoto - vuoto - 2005 (mostra tutte le auto del 2005)

    vuoto - vuoto - vuoto (mostra tutti i record)


    Forse così è un pò più chiaro,

    Grazie anticipate!!!
    A) L'hai provato?
    B) La marca è obbligatoria:
    codice:
    if marca = "" then
    Response.write "Errore. Non hai inserito nessun termine da cercare"
    Response.end
    Comunque devi lavorare su and/or
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    ciao optime

    se leggevi il mio primo post notavi che lo avevo fatto con AND ma non ottengo i risultati desiderati. con AND se ad esempio non seleziono nessuna marca ma selgo le altre opzioni non mi visualizza nessun risultato.

    se faccio una ricerca cosi:

    Marca - Alimentazione - Anno

    BMW - Benzina - 2000 (così è perfetto)


    se invece eseguo una richerca così

    vuoto - Diesel - 2000 (dovrebbe mostrare tutte le auto di tutte le marche, diesel dell'anno 2000)

    invece non mi visualizza nessun risultato

    non capisco come risolvere

  7. #7
    ciao andrea,

    si ho provato come avevi detto tu ma nulla da fare

    riguardo a

    if marca = "" then
    Response.write "Errore. Non hai inserito nessun termine da cercare"
    Response.end

    questo l'ho rimosso ma non va lo stesso

    posto link delle pagine cosi forse vi potete capire meglio

    http://www.fabriziocar.it/nuovo/form.html

  8. #8
    nessuno può aiutarmi!!!

  9. #9
    Originariamente inviato da gianluca8730
    nessuno può aiutarmi!!!
    tutti a frignare

    se NON immetti un termine di ricerca, semplicemente NON cercarlo. ragionaci un po' su, è molto semplice

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    <%
    Dim marca, alimentazione, anno
    alimentazione = Replace(Request.Form("alimentazione"), "'", "")
    anno = Replace(Request.Form("anno"), "'", "")
    marca = Replace(Request.Form("marca"), "'", "")
    
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("/mdb-database/database.mdb")
    Conn.Open strConn
    if marca = "" And anno = "" And alimentazione = "" Then
    sql = "SELECT * FROM auto" 
    elseif marca <> "" And anno = "" And alimentazione = "" Then
    sql = sql & "where marca = '" & marca & "'"
    elseif marca = "" And anno <> "" And alimentazione = "" Then
    sql = sql & "where anno = '" & anno & "'"
    elseif marca = "" And anno = "" And alimentazione <> "" Then
    sql = sql & "where alimentazione = '" & alimentazione & "'"
    elseif marca <> "" And anno = "" And alimentazione <> "" Then
    sql = sql & "where marca = '" & marca & "' and alimentazione ='"&alimentazione&"'"
    elseif marca <> "" And anno <> "" And alimentazione = "" Then
    sql = sql & "where marca = '" & marca & "' and anno ='"&anno&"'"
    elseif marca = "" And anno <> "" And alimentazione <> "" Then
    sql = sql & "where anno = '" & anno & "' and alimentazione ='"&alimentazione&"'"
    elseif marca <> "" And anno <> "" And alimentazione <> "" Then
    sql = sql & "where marca = '" & marca & "' and anno = '" & anno & "' and alimentazione ='"&alimentazione&"' "
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn
    if Rs.EOF then%>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.