Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Ordinare i risultati di una ricerca - impegnativo(?)

    Allora,

    mi chiedevo come si fa la seguente. Mettiamo che io ho il mio database access(sigh sob) con tutta una serie di appartamenti sopra. Io gli mando una query del tipo

    codice:
    select * from tab_appartamenti where titolo like '%pippo%' or area='Zona1' or prezzo=1500
    apro il recordset e questo mi ci mette i risultati belli belli. Ora viene il momento di stampare il tutto no? ecco qui è il discorso:

    come faccio a fargli stampare prima quelli che contengono tutte e tre le occorrenze cercate e via via quelli che ne contengono di meno?

    infatti essendo in ricerca con or, io troverò o risultati che corrispondono a tutti e 3 i where, oppure solo a 2 oppure solo a 1.

    Idee? tutorial? script già fatti?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    Ma ora su 2 piedi cosi mi viene in mente l'utilizzo del Filter
    ma dipende da quanti record ci sono dato che ti tocca usare un cursore dinamico e quindi rallenta la pagina

    un esempio da 2 lire:
    codice:
    if Request("titolo")<> "" then
     Rs.Filter = "titolo like '%" & Request("titolo") & "%'"
     while not Rs.eof 
    
     -----
    
     rs.movenext
     Rs.Filter = ""
    end if 
    
    if Request("prezzo") bla bla bl a

  3. #3
    scusa ma il .Filter non l'ho mai usato ( e cmq non ho molti record da visualizzare, quindi si potrebbe pure fare)

    non è che sai dirmi i dettagli del suo funzionamento?

    cmq grazie

  4. #4
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    prova su devguru
    cmq è simile alla sintassi di sql

    esempio sql = " select where id > 100 or id < 200"

    Rs.Filter = "id > 100 OR id < 200"

    esempio sql = " select where titolo Like '%pippo%' or titolo <> 'pluto'"

    Rs.Filter = "titolo Like '%pippo%' or titolo <> 'pluto'"

    praticamente tagliando dal where in poi le condizioni

    per aprirlo devi aprilo in 3,3
    Rs.open Sql,Conn,3,3

    per eliminare un filtro
    Rs.Filter = ""

    una volta che tu hai filtrato
    scorri il record come se fosse occupato solo dai risultati filtrati
    quindi. eof lo da se no ci sono risultati etc

    [EDIT]
    sul locktype ho dei dubbi, credo che tu lo possa utilizzare anche 1 ma devi fare prove
    [/EDIT]

  5. #5
    forse ho capito:

    codice:
    sql="select * from tabella"
    rs.open sql,conn,3,3
    
    rs.filter="id>100 and id<110"
    
    while not rs.eof
    ....
    wend
    
    rs.filter="pippo<pluto and pluto>sempronio"
    while not rs.eof
    ....
    wend
    giusto?

  6. #6
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    si prendi il nome del campo di tabella e li fai gli And e gli or come se si trattasse di sql

    Rs.Filter = "titolo <> 'blabla' or titolo = 'blablasss' or titolo like '%blabla' or titolo not in ('blablazzzz','blablazzz') etc etc

    quando poi hai scorso tutti i record levi il filtro
    Rs.filter

    non mi ricordo se devi fare il movefirst ma non credo

    [EDIT]
    no niente movefirst
    [/EDIT]

  7. #7
    Grazie mille, poi farò le mie prove

    a buon rendere

  8. #8
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    cmq ora rileggendo il tuo topic mi sono accorto che tu volevi un ordine solo sulla ricerca. Io credevo che intendessi prima quelli della ricerca e poi tutto il resto.
    IN questo caso allora tu fai un ordine in base alla querystring
    if request("prezzo") <> "" then
    sqlSort = " order by " & request("prezzo")

    etc
    nel caso ti costruisci il sort in maniera complessa a seconda della querystring in modo da avere
    order by prezzo asc, titolo, area

    boh cmq funziona anche con filter ma conta che il tipo di cursore rallenta

    ciaouz

  9. #9
    il fatto è che io voglio vedere PRIMA quelli che hanno il prezzo che ho ricercato e poi gli altri, e se metto order by prezzo non va

    proverò con i filter

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.