Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: ricerca in un db

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    507

    ricerca in un db

    ciao ragazzi, ho bisogno di un aiuto..

    io invio delle variabili ad una pagina asp da flash(e fin qui ci sono)..
    voglio che in base al valore che asp riceve, mi faccia una ricerca in un database: voglio cioè che mi vada a prendere tutti i campi "cinlink" che hanno come valore dei campi "prop1","prop2","prop3","prop4" quello delle variabili passate.
    In realtà però devo andare a pescare quelli che hanno una maggiore corrispondenza con i valori passati da flash...

    non so se mi sono spiegata.. :master:

  2. #2
    non ho capito molto bene...cmq dovresti fare una select * from tabella where var1 = "quello che passi"
    capito più o meno?
    Vuoi condividere le tue Video, Foto e Musica con tutti i tuoi amici?
    http://www.manyego.com
    Entra a far parte della nostra Community!
    Ti aspettano migliaia di Video e Foto e centinaia di Amici!
    Crea il tuo Blog e personalizzalo con alcuni semplici passi!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    507
    il fatto è che io voglio avere come risultato non solo quelli che hanno tutte le proprietà ugauali alle variabili, ma quelli che hanno il maggior numero di proprietà uguali alle variabili...

    sono riuscita a spiegarmi?!

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    507
    mi date una mano?!?!?!
    E' URGENTE..............

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    507
    up

  6. #6
    Purtroppo non è facile aiutarti, non spieghi di QUALI proprietà parli, come valutarne la corrispondenza, senbra più un discorso politico che un programma....................cerca di essere più chiara
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    507
    ci riprovo:
    ho un file flash
    ho quattro combobox popolate dinamicamente con quattro file asp, ogni combo corrisponde ai vari valori di una proprietà che ho nel database a cui faccio riferimento..
    ad esempio,questa è la query con cui popolo una combo
    codice:
    strSQL = "SELECT DISTINCT (prop1) FROM filmati"
    quando l'utente seleziona un elemento su ogni combo, io lo passo ad un file asp attraverso delle variabili
    questo file, vorrei che, dopo aver ricevuto le variabili, facesse una ricerca nel database di cui ti ho detto, andandomi a pescare tutti quei file che hanno un maggior numero di prprietà corrispondenti ai valori memorizzati nelle variabili che io da flash passo ad asp...

    il db è così strutturato..
    ho un record fatto di cinque campi: uno contiene il nome del file e gli eltri le quattro proprietà (prop1,prop2..)

    mi sono spiegata un po' meglio?! :master:

  8. #8
    ...credo di sì, e cioè vuoi fare in pratica una ricerca tipo motore.........pescando i records che contengono un maggior numero di parole chiave...........se è così, ti posso postare due files che ho fatto poco tempo fa, un piccolo motore di ricerca, dai quali puoi trarre qualche spunto. Fammi sapere.
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    507
    si, proprio quello...

    se mi mandi i file te ne sarei molto grata, così guardo se riesco a risolvere!

  10. #10
    Allora, leggi bene le spiegazioni introduttive, nella speranza che ti possano essere utili.

    Il form è questo:

    codice:
    <!--
    nome file					form_keywords.asp
    versione					1.0
    data ultima modifica		28/04/2004
    overview					motore di ricerca: modulo per inserire le parole chiave					
    files correlati				dopo la convalida, inoltra l'input a select_keywords.asp
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   N O T A   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    		bisogna includere "controllo/login/riservato.asp" se si vuole limitare 
    							l'accesso ai soli utenti autenticati
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX				
    //-->
    <%@LANGUAGE="VBSCRIPT"%>
    <html>
    <head>
    <title>Form ricerca per parole chiave</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript">
    <!--
    function check(){
    	var test;
    	test="true";
    		if (test=="true") {
    			if (document.ricerca.parole.value=="") {
    				alert("Devi specificare almeno una parola da cercare!");
    				test="false";
    			}
    		}
    		if (test=="true") {
    				document.ricerca.action="select_keywords.asp";
    				document.ricerca.submit();
    			}		
    	}
    //-->
    </script>
    
    </head>
    
    <body onload="document.ricerca.parole.focus();">
    
    
    
    
    
    
    <center><table border="0" width="90%">
    	<tr>
    		
    	
    		<td align="center">Ricerca per parole chiave</td>
    	
    		</tr>
    </table>
    </center>
    
    
    
    
    
    
    <form name="ricerca" method="post">
    	<center><table width="80%" border="0">
    		<tr>
    			<td align="right">Inserisci parole chiave</td>
    			<td align="left"><input type="text" name="parole" size="30" value="<%=parole%>"></td>
    		</tr>
    		<tr>
    		<td></td>
    		<td></td>
    		</tr>
    		<tr>
    			<td align="right"><input type="button" value="Conferma" onclick="javascript: check();"/></td>
    			<td><input type="reset" name="reset" value="Annulla"/></td>
    		</tr>
    	</table></center>
    </form> 
    
    </body>
    </html>


    La seconda pagina, che fa la ricerca vera e propria, è
    codice:
    <!--
    nome file					select_keywords.asp
    versione					1.0
    data ultima modifica		28/04/2004
    overview					motore di ricerca:  acquisisce le parole chiave (anche multiple) da form_keywords.asp,  elimina le  maiuscole
    							(serve poi per l'evidenziazione), le suddivide memorizzandole in un array e seleziona tutti i records che ne
    							contengono ALMENO UNA IN QUALSIASI CAMPO - poi presenta i records selezionati in ordine di numero di occorrenze 
    							delle parole-chiave (prima quelli che ne contengono di più), evidenziando le stesse in grassetto. 
    							Funzione di paginazione (avanti-indietro e vai-a-pagina...),  numero totale pagine e numero 
    							totale records selezionati.					
    files correlati				/adovbs.inc  							file di configurazione
    							/controllo/moduli/db_connection.asp		stringa di connessione (sub open_connection e close_connection)
    											
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   N O T A   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    		bisogna includere "controllo/login/riservato.asp" se si vuole limitare 
    							l'accesso ai soli utenti loggati
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX				
    //-->
    
    <html>
    <head>
    <title>Ricerca per parole chiave</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
    <!--
    #piedepagina{
    position: relative;
    left: 20px;
    bottom: 25px;
    }
    -->
    </style>
    </head>
    <body>
    
    
    
    
    
    
    
    <%
    call open_connection ()
    
    parole=request("parole")
    parole=lcase(parole) 'per (dopo) evidenziare indipendentemente dalle maiuscole
    
    if len(parole) > 0 then
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    
    sql = "SELECT codice, prodotto, categoria, descrizione, tipologia, comune, provincia, info2 FROM prodotti WHERE"
    
    ArrSearch = Split(parole)
    x = 0
    for each Word In ArrSearch     
         sql = sql & " (prodotto like '%" & word & "%' or descrizione like '%" & word & "%' or tipologia like '%" & word & "%' or info2 like '%" & word & "%')"
         If Not x = UBound(ArrSearch) Then
    	  sql = sql & " or"
      End If
    
      x = x + 1
    Next
    end if
    
    'apro il rs
    rs.Open sql, objConn, 3, 3 'cursore dinamico
    
    if rs.eof then ' nessun record soddisfa la richiesta!
    
    %>
    
    
    
    <center><table border="0" width="80%">
    	<tr>
    		<td></td>	
    		<td align="center">Nessuna inserzione soddisfa i criteri di ricerca</td> 
    		<td>Altra ricerca</td>
    	</tr>
    </table>
    </center>
    
    
    <%
    
    else
    
    'ZZZZZZZZZZZZZZZZZ ESTRAZIONE RECORDS SELEZIONATI ZZZZZZZZZZZZZZZZZZZZZZZ
    
    do while not (rs.EOF)
    
    			codice_prodotto=rs.fields.item("codice").value
    			prod=rs.fields.item("prodotto").value
    			desc=rs.fields.item("descrizione").value
    			tipol=rs.fields.item("tipologia").value
    			com=rs.fields.item("comune").value
    			prov=rs.fields.item("provincia").value
    			inf=rs.fields.item("info2").value
    			codice_categoria=rs.Fields.Item("categoria").Value
    			
    		SELECT CASE codice_categoria
              CASE "RV"
                  nome_categoria = "Residenziale Vendita"
              CASE "RL"
                  nome_categoria = "Residenziale Locazione"
              CASE "CV"
                  nome_categoria = "Commerciale Vendita"
              CASE "CL"
                  nome_categoria = "Commerciale Locazione"
            END SELECT
              
    			
    
    ' XXXXXXXX CONTEGGIO PAROLE CHIAVE xxxxxxxxxxxxxxxxxxxxxxxxxx
    
    x = 0
    conteggio=0 
    
    ArrSearch = Split(parole)
    for each Word In ArrSearch 
    	prova=prod&desc&tipol&prov&com&inf&nome_categoria
    	tet="0"
    		for y=1 to len(prova) 
    		tet=instr(prova, word)
    			if tet<>0 then
    			conteggio=conteggio+1
    			prova=mid(prova,tet+1)
    			end if
    		next
    	x=x+1
    next
    
    ' XXXXXXXXXXXXXX  AGGIORNAMENTO CAMPO "NUMERO PAROLE CHIAVE" XXXXXXXXXXXXXXXXX
    
    SQLcont= "UPDATE prodotti SET campo10='"&conteggio&"' where codice ='"&codice_prodotto&"'"
    objConn.Execute SQLcont
    
    rs.movenext
    loop
    
    'ZZZZZZZ  PAGINAZIONE  ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
    
    numero=5 'notizie per pagina
    controllo=numero
    
    dim rs2, sql2
    Set rs2 = Server.CreateObject("ADODB.Recordset")
    
    pag = TRIM(Request.QueryString("pag")) 'paginazione
    If pag="" Then
      pag = 1
    Else
      pag = CInt(pag)
    End If
    
    ' XXXXXXXXXXX  NUOVA ESTRAZIONE RECORDS ..............  XXXXXXXXXXXXXXXXXXXXXX
    
    sql2 = "SELECT codice, prodotto, categoria, descrizione, tipologia, comune, provincia, info2 FROM prodotti WHERE"
    
    ArrSearch = Split(parole)
    x = 0
    for each Word In ArrSearch     
         sql2 = sql2 & " (prodotto like '%" & word & "%' or descrizione like '%" & word & "%' or tipologia like '%" & word & "%' or info2 like '%" & word & "%')"
         If Not x = UBound(ArrSearch) Then
    	  sql2 = sql2 & " or"
      End If
    
      x = x + 1
    Next
    
    ' XXXXXX .......... QUESTA VOLTA IN ORDINE DI NUMERO DI RICORRENZE DELLE PAROLE CHIAVE! XXXXXXXXXX
    
    sql2=sql2 & " ORDER BY campo10 DESC"
    
    'apro il rs
    rs2.Open sql2, objConn, 3, 3 'cursore dinamico
    tot = rs2.RecordCount 'conta i records nel recordset per la paginazione
    
    %>
    <table border="0" width="100%">
    	<tr>
    		<td></td>
    		<td align="center">La ricerca ha estratto <%=tot%> inserzioni rispondenti ai criteri inseriti</td>
    		<td>Altra ricerca</td>
    	</tr>
    </table>
    
    
    <table width='100%' border='1' cellpadding="2" cellspacing="0">
    <%
    rs2.move numero*(pag-1)
    
    do while not (rs2.EOF or controllo=0)
    			
    			codice_prodotto=rs2.fields.item("codice").value
    			prod=rs2.fields.item("prodotto").value
    			desc=rs2.fields.item("descrizione").value
    			tipol=rs2.fields.item("tipologia").value
    			com=rs2.fields.item("comune").value
    			prov=rs2.fields.item("provincia").value
    			inf=rs2.fields.item("info2").value
    			codice_categoria=rs2.Fields.Item("categoria").Value
    			
    		SELECT CASE codice_categoria
              CASE "RV"
                  nome_categoria = "Residenziale Vendita"
              CASE "RL"
                  nome_categoria = "Residenziale Locazione"
              CASE "CV"
                  nome_categoria = "Commerciale Vendita"
              CASE "CL"
                  nome_categoria = "Commerciale Locazione"
            END SELECT
    					
    'xxxxxxxxx EVIDENZIAZIONE PAROLE CHIAVE xxxxxxxxxxxxxxxxx
    x=0
    ArrSearch = Split(parole)
    for each Word In ArrSearch
    if prod <> "" then
    prod=lcase(prod) 
    prod=Replace(prod, word, ""&word&"")
    end if
    x=x+1
    next
    
    x=0
    ArrSearch = Split(parole)
    for each Word In ArrSearch
    if desc <> "" then
    desc=lcase(desc) 
    desc=Replace(desc, word, ""&word&"")
    end if
    x=x+1
    next
    
    x=0
    ArrSearch = Split(parole)
    for each Word In ArrSearch
    if tipol <> "" then 
    tipol=lcase(tipol)
    tipol=Replace(tipol, word, ""&word&"")
    end if
    x=x+1
    next
    
    x=0
    ArrSearch = Split(parole)
    for each Word In ArrSearch 
    if com <> "" then
    com=lcase(com)
    com=Replace(com, word, ""&word&"")
    end if
    x=x+1
    next
    
    x=0
    ArrSearch = Split(parole)
    for each Word In ArrSearch 
    if prov <> "" then
    prov=lcase(prov)
    prov=Replace(prov, word, ""&word&"")
    end if
    x=x+1
    next
    
    x=0
    ArrSearch = Split(parole)
    for each Word In ArrSearch 
    if inf <> "" then
    inf=lcase(inf)
    inf=Replace(inf, word, ""&word&"")
    end if
    x=x+1
    next
    
    x=0
    ArrSearch = Split(parole)
    for each Word In ArrSearch 
    if nome_categoria <> "" then
    nome_categoria=lcase(nome_categoria)
    nome_categoria=Replace(nome_categoria, word, ""&word&"")
    end if
    x=x+1
    next
    
    'XXXXXXXXXXXXXX STAMPA A VIDEO XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    			
    %>
    <tr>
    	<td><%=prod %></td> 
    
    	<td><%=desc %></td>
    <!--<td><%=tipol %></td> 
    	<td><%=com %></td> 
    	<td><%=prov %></td>  
    	<td><%=inf %></td> //-->
    	<td align="left" width="10%" > Visual scheda </td>
         
    <%			controllo = controllo - 1
    			rs2.Movenext
    
    	loop
    	
    	%>
    </tr></table>
    
    
    
    <center><table border="0" width="250">
    	<tr>
    <%
    If ( pag > 1) Then
    %>
    <td widht="50" align="left">[img]barrow.gif[/img]</td>
    <% else %>
    <td widht="50"></td>
    <% 
    end if
    %>
    <td width="220" align="center">
    <%
    if tot mod(numero)=0 then
    lastpage=int(tot/numero)
    else 'deve numerare l'ultima pagina anche se incompleta!
    lastpage=int(tot/numero)+1
    end if
    for c=1 to lastpage
    %>
    <%=c%>
    <%
    next
    %></td><%
    If not rs2.eof Then
    %>
    		</td><td widht="50" align="right">[img]arrow.gif[/img]</td>
    <% else %> <td widht="50"></td>
    <% end if %>
    </tr>
    </table>
    </center>
    
    
    
    <div id="piedepagina">Pag. <%=pag%> di <%=lastpage%></div>
    <%
    
    'rs.close
    'rs=nothing
    
    rs2.close
    set rs2=nothing
    
    end if
    
    'chiudo tutto
    call close_connection ()
    
    %>
    
    </body>
    </html>
    Scusa se non ho potuto selezionare le parti interessanti, è un compito che devo lasciare a te.

    Buon divertimento

    Marco
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

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.