Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560

    domanda semplice per ricerca nel db

    ho questo form es:

    codice:
    <form action="results.asp" method="post" name="cerca" id="cerca" style="width: 135px; padding: 0px; margin: 0px auto;">
    
    
       Tipologia
    
    <select name="tipo" >
    <option value="tipo">Tutti i tipi</option>
    <option value="Appartamento">Appartamento</option>
    <option value="Villa/Case">Villa/Case</option>
    <option value="Rustici">Rustici</option>
    <option value="Villa di prestigio">Villa di prestigio</option>
    </select>
    </p>
    
    
      Prezzo
    
    <select name="CostoLire" >
    <option value="CostoLire">Tutti i prezzi</option>
    <option value="Fino a 120.000 euro">Fino a 120.000 euro</option>
    <option value="Da 120.000 a 200.000">Da 120.000 a 200.000</option>
    <option value="Da 200.000 a 300.000">Da 200.000 a 300.000</option>
    <option value="Da 300.000 a 500.000">Da 300.000 a 500.000</option>
    <option value="Oltre 500.000">Oltre 500.000</option>
    </select>
    </p>
    
    
      Zona geografica:
    
    <select name="zona" >
    <option value="zona">Tutte le zone</option>
    <option value="Da Gravedona a Sorico">Da Gravedona a Sorico</option>
    <option value="Da Consiglio a Pianello">Da Consiglio a Pianello</option>
    <option value="Da Pianello a Menaggio">Da Pianello a Menaggio</option>
    <option value="Tremezzina">Tremezzina</option>
    <option value="Primo bacino">Primo bacino</option>
    </select>
    </p>
    
    
    
    <label>
    <input name="Submit" type="submit" class="submit" value="Cerca Immobile" />
    </label>
    </p>
    </form>
    il mio database .mdb lo creo con un unica tabella tipo: "Offerte" e poi i nomi campo all interno della tabella li creo: "tipo" "Appartamento" "Villa/Case" e così via fino a "Primo bacino" o come?

    poi nella pagina "results.asp" inserisco:

    codice:
    <% response.buffer=true %>
    <% Server.ScriptTimeout = 300 %>
    
    
    
    <TABLE WIDTH="500" CELLPADDING="0" CELLSPACING="0" BORDER="0" align="center">
    	<TR height="60" valign="justify">
    		<TD align="justify">
    			<font face="verdana" size="2" color="#333333">Links partners.</font><font face="verdana" size="2" color="#333333">Segnala sito</font>
    		</TD>
    	<TR>
    		<TD>	
    			<%
    			iPageSize = 10 'NUMERO RECORD PER PAGINA
    
    			If Request.QueryString("page") = "" Then
    				iPageCurrent = 1
    			Else
    				iPageCurrent = CInt(Request.QueryString("page"))
    			End If
    
    			strSQL = "SELECT * FROM Offerte ORDER BY tipo ASC"
    			Set objRS = Server.CreateObject("ADODB.Recordset")
    			objRS.PageSize = iPageSize
    			objRS.CacheSize = iPageSize
    			objRS.Open strSQL, objConn, adOpenStatic, adLockReadOnly, adCmdText
    
    			reccount = objRS.recordcount
    			iPageCount = objRS.PageCount
    
    			If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
    			If iPageCurrent < 1 Then iPageCurrent = 1
    
    			If iPageCount = 0 Then
    				Response.Write "
    
    Non sono stati trovati links.</p>"
    			Else
    				objRS.AbsolutePage = iPageCurrent
    				iRecordsShown = 0
    				%>
    				
    							<table width="480" align="center" border="1" cellspacing="1" cellpadding="3">
    							<%
    								'SI VISUALIZZA IL CONTENUTO DELLA STRINGA SQL
    								'ALL'INTERNO DELLA TABELLA PRIMA DEFINITA
    								cont=1
    								Do While iRecordsShown < iPageSize And Not objRS.EOF
    									Dim Rig, bg
    									Rig = Rig + 1
    									If Rig Mod 2 = 0 then
    										bg = "#E4E4E4"
    									Else
    										bg = "#ccccff"	
    									End if %>
                                  <tr bgcolor="<%=Tabella_Colore_Titolo%>" align="left">
                                    <th colspan="2" scope="col"><span class="Stile2">
                                    <% Response.Write " " & objRS("Titolo") & "" %></span></th>
                                  </tr>
                                  <tr>
                                    <th width="80" scope="row"><% Response.Write "[img][/img]" %></th>
                                    <td width="379" valign="top"><% Response.Write "" & objRS("Testo") & "" %></td>
                                  </tr>
    							  <%
    								Cont = Cont + 1
    									'POSIZIONAMENTO ALLA RIGA SUCCESSIVA DEL DB
    									iRecordsShown = iRecordsShown + 1
    									objRS.MoveNext
    								Loop
    								'PULIZIA DEGLI OGGETTI ADO
    								objRS.Close
    								Set objRS = Nothing
    								%>
                                </table>
    							<%End if%>
    			<%If ipagecount <> 1 Then%>
    		  <center>
    
    				<table>
    					<tr valign="middle">
    						<td width="50%" align="center" valign="middle"><font face="verdana" size="1" color="#000000">
    							<center>[
    							<%if iPageCurrent-2 > 0 and iPageCurrent > 2 then%>
    								Prima
    							<%end if%>
    							<%if iPageCurrent > 1 then%>
    								Precedente
    							<%end if%>
    							<%if iPageCount > 2 then
    								if iPageCurrent-2 < 1 then da_pag = 1 else da_pag = iPageCurrent-2
    								if iPageCurrent+2 > iPageCount then fino_a_pag = iPageCount else fino_a_pag = iPageCurrent+2
    							else
    								da_pag = 1
    								fino_a_pag = iPageCount
    							end if%>
    							<%for i = da_pag to fino_a_pag%>
    								<%if i = iPageCurrent then%>
    									<font color="red"><%=i%></font>
    								<%else%>	
    									<%=i%>
    								<%end if%>	
    							<%next%>
    							<%if iPageCurrent > 0 and iPageCurrent < iPageCount then%>
    								Successiva
    							<%end if%>	
    							<%if iPageCurrent+1 < iPageCount then%>
    								Ultima
    							<%end if%>	
    							]</center>
    						</font></td>
    					</tr>
    					<tr>
    						<td colspan="2" align="center"><font face="verdana" size="0.5" color="#333333">
    							<center>
    
    							Pagina
    								<font color="#FF0000"><%=iPageCurrent%></font>
    								di
    								<font color="#FF0000"><%=iPageCount%></font>
    							</center>
    						</font></td>
    					</tr>
    				</table>
    		  </center>
    			<%end if%>
    			<%
    			objConn.Close
    			Set objConn = Nothing
    			%>
    		</TD>
    	</TR>
    </TABLE>
    così dovrebbe funzionare la ricerca?

  2. #2
    Guarda, c'è una discussione lunga lunga poco sotto: http://forum.html.it/forum/showthrea...readid=1132984
    Leggila tutta.

  3. #3
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    letto..però essendo una ricerca multipla il mio dubbio è, devo creare 3 TABELLE nel database ovvero:

    1a: tabella: "Tipologia"

    2a: tabella: "Località"

    3a tabella: "Prezzo"

    ?


    codice:
       Tipologia:
    
    <select name="Tipologia" >
    <option value="Tipologia">Tutti i tipi</option>
    <option value="Appartamento">Appartamento</option>
    <option value="Villa/Case">Villa/Case</option>
    <option value="Rustici">Rustici</option>
    <option value="Villa di prestigio">Villa di prestigio</option>
    </select>
    </p>
    
    
      Località:
    
    <select name="Località" >
    <option value="Località">Tutte le località</option>
    <option value="Gravedona">Gravedona</option>
    <option value="Pianello">Pianello</option>
    <option value="Menaggio">Menaggio</option>
    </select>
    </p>
    
    
      Prezzo:
    
    <select name="Prezzo" >
    <option value="Prezzo">Tutti i prezzi</option>
    <option value="Fino a 120.000 euro">Fino a 120.000 euro</option>
    <option value="Da 120.000 a 200.000">Da 120.000 a 200.000</option>
    <option value="Da 200.000 a 300.000">Da 200.000 a 300.000</option>
    <option value="Da 300.000 a 500.000">Da 300.000 a 500.000</option>
    <option value="Oltre 500.000">Oltre 500.000</option>
    </select>
    </p>
    f

  4. #4
    Certo.
    Tabella_Tipologia
    id_tipologia - contatore
    nome_tipologia - testo

    Tabella_Localita
    id_localita - contatore
    nome_localita - testo

    Tabella_Prezzo
    id_prezzo - contatore
    etichetta_prezzo - testo

    Poi, nella tabella degli immobili aggiungi i campi
    id_tipologia - numerico
    id_localita - numerico
    id_prezzo . numerico
    dove salvi l'id riferito ad ognuno di essi.

    In questo modo, le select della form come value devono passare gli id di ognuno di questi elementi e non il nome o l'etichetta.
    Capisci?
    In questo modo si fanno i database non ridondanti.

  5. #5
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    Ho impostato il database così:

    Tabella 1: Immobili
    Campi: ID_Tipologia ID_Località ID_Prezzo

    Tabella 2: Tipologia
    Campi: ID_Tipologia Appartamento Villa/Case Rustici Villa di prestigio

    Tabella 3: Località
    Campi: ID_Località Gravedona Pianello Menaggio

    Tabella 4: Prezzo
    Campi: ID_Prezzo Fino a 120.000 euro Da 120.000 a 200.000 Da 200.000 a 300.000 Da 300.000 a 500.000 Oltre 500.000

    ora se cerco:

    Appartamento

    Gravedona

    Fino a 120.000 euro

    mi dovrebbe stampare a video in ordine di ID_Tipologià tramite: strSQL = "SELECT * FROM Immobili ORDER BY ID_Tipologia ASC"

    vero?

    però i Response.Write come li setto essendo una ricerca multipla?


    codice:
    <tr bgcolor="<%=Tabella_Colore_Titolo%>" align="left">
                                    <th colspan="2" scope="col"><span class="Stile2">
                                    <% Response.Write " " & objRS("ID_Tipologia") & "" %></span></th>
                                  </tr>
                                  <tr>
                                    <th width="80" scope="row"><% Response.Write "[img][/img]" %></th>
                                    <td width="379" valign="top"><% Response.Write "" & objRS("ID_Località") & "" %></td>
    								<td width="379" valign="top"><% Response.Write "" & objRS("ID_Prezzo") & "" %></td>
    così?

  6. #6
    Te non c'hai capito nulla mi sa... :master:

  7. #7
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    mems ho sbagliato il db o i Response.Write ?

  8. #8
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    per la pagina dei risultati devo usare quella postata in questa discussione?:
    http://forum.html.it/forum/showthrea...cerca+multipla

    codice:
    ...
    ...
    ...
    
    Set Recordset2 = Server.CreateObject("ADODB.Recordset")
    Recordset2.ActiveConnection = MM_cerca_STRING
    Recordset2.Source = "SELECT * FROM Tabella WHERE Tipologia = '" + Replace(Recordset2__tip, "'", "''") + "' AND Località = '" + Replace(Recordset2__cam, "'", "''") + "' AND Prezzo = '" + Replace(Recordset2__prov, "'", "''") + "' "
    ...
    ...
    ...
    ?

  9. #9
    Originariamente inviato da Lino80
    mems ho sbagliato il db o i Response.Write ?
    La struttura delle tabelle.
    Hai fatto un campo per ogni tipo di prezzo, per ogni località? Oppure ho letto male?
    codice:
    tabella_tipologia
    id_tipologia      nome_tipologia
         1                   Appartamento
         2                   Villa/Case rustici
         3                   Villa di prestigio
    
    tabella_località
    id_localita         nome_localita
         1                   Gravedona
         2                   Pianello
         3                   Menaggio
    
    tabella_prezzo
    id_prezzo           valore_prezzo
        1                     fino a 120.000 euro
        2                     da 120.000 a 200.000 euro
        3                     da 200.000 a 300.000 euro
        4                     da 300.000 a 500.000 euro
        5                     oltre 500.000 euro
    
    tabella_immobili
    id_immobile        id_tipologia     id_localita    id_prezzo    descrizione_immobile
         1               2               1                   5             Bello davvero...
         2               3               2                   3             Una favola...
         3               1               3                   1             Carino, comodo, spazioso...
    Ora dimmi: l'immobile con id_immobile uguale a 1 che tipologia ha? in che località si trova? in quale fascia di prezzo è collocata?
    codice:
    <%
    set conn = server.createObject("ADODB.Connection")
    conn.open connString
    sql = "SELECT a.id_immobile, "&_
              "a.descrizione_immobile, "&_
              "b.nome_tipologia, "&_
              "c.nome_localita, " &_
              "d.valore_prezzo " &_
              "FROM tabella_immobili a "&_
              "(INNER JOIN tabella_tipologia b "&_
              "ON b.id_tipologia = a.id_tipologia) "&_
              "(INNER JOIN tabella_localita c "&_
              "ON c.id_localita = a.id_localita) " &_
              "(INNER JOIN tabella_prezzo d " &_
              "ON c.id_prezzo = a.id_prezzo) "&_
              "ORDER BY b.id_tipologia"
    set rs = conn.execute(sql)
      if not rs.eof then
        do until.rs eof
          response.write rs("descrizione_immobile") & " "
          response.write rs("nome_tipologia") & " "
          response.write rs("nome_localita") & " "
          response.write rs("valore_prezzo")
          response.write "
    "
        rs.moveNext
        loop
      end if
    rs.close
    set rs = nothing
    conn.close
    set conn = nothing
    %>

  10. #10
    Questo codice ti crea un elenco di immobili completo.
    Per la ricerca devi creare dinamicamente le select form con i dati delle tabelle tipologia, località, prezzo, mettendo come value l'id e come testo l'altro campo.
    La query di ricerca la fai per valori ID, ovviamente, così come in quella discussione che ti ho postato all'inizio, dove si parla di ricerca combinado in join tutte le tabelle.

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.