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

    Motore di ricerca multiplo

    Ciao a tutti,

    Chiedo scusa ma ho un problema da risolvere che è abbastanza importante per me...

    Allora, vengo al quesito:
    Vorrei realizzare un Motore di ricerca che mi permetta di fare questo...

    il motore dovrebbe essere composto da tre campi:

    1) Imput Text: obbligatorio (cerca nel 1° campo del db)
    2) Imput Text: Facoltativo (cerca nel 2° campo del db)
    3) Menù a scelta: Facoltativo (cerca nel 3° campo del db)

    ammettiamo che tutti e tre i campi puntino ad un db (mdb o mysql consigliate voi) ed ogni voce punti alle rispettive tabelle...
    al momento della ricerca dovrebbe accadere questo:

    ricerca dei dati che contengano i dati inseriti in tutti e tre i campi, es:

    1dato + 2dato + 3dato (dove il 2 ed il 3 dato possono essere anche nulli, cioè vacanti)

    Ringrazio tutti quelli che possano darmi una mano, è una cosa importantissima per me..

    Grazie a tutti ciao da Giuseppe
    La Gratitudine è la prima cosa nella vita...

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    beh se sono vuoti non li aggiungi nella query...o forse non ho inquadrato il problema
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  3. #3
    io Parto da questo, che è uno script che ho realizzato, ma che ricera in modo classico...

    Potreste aiutarmi su questo:

    codice:
    <%@LANGUAGE = JScript%>
    <%
    	Response.Buffer = true;
    	var Cn = new ActiveXObject("ADODB.Connection");
    		Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("mdb-database/cerca.mdb"));
    	var testo = new String(Server.HTMLEncode(Request.Form("cerca")));
    	var r_testo = testo.replace(/'/g,"''");
    	var cerca = r_testo.split(" "); // Tutte le parole chiave devono essere separate da uno spazio vuoto
    	var sql = "SELECT * FROM risultati WHERE ";
    		for (var i=0; i<cerca.length; i++)
    		{
    			if (i > 0) sql += " AND";
    			sql += " parole_chiave LIKE '%" + cerca[i] + "%'";
    		}
    		sql += " ORDER BY titolo";
    	var Mostra = Cn.Execute(sql);
    %>
    <html>
    	<head>
    		<title>Cerca</title>
    		
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="css/file.css" rel="stylesheet" type="text/css">
    <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <div align="center"> 
      <table width="100%" height="371" border="0" cellpadding="0" cellspacing="0">
        <tr> 
          <td height="20" valign="top" bgcolor="#000099"> <div align="center"> 
              
    
    <font color="#FFFFFF" size="4">Motore di Ricerca</font></p>
            </div></td>
        </tr>
        <tr> 
          <td height="351" valign="top" bgcolor="#E6FAFF"> 
            <div align="center"> 
              <form method="post" action="cerca.asp">
                <div align="left"> 
    <input type="text" name="cerca" size="15" value="<%cerca != "undefined" ? Response.Write(testo) : Response.Write("")%>">
                  <input name="submit" type="submit" value="Cerca">
                </div>
              </form>
              <div align="right"> 
                <table width="100%" height="1%" border="0" cellpadding="0" cellspacing="0">
                  <tr> 
                    <td width="3%" height="19"> <div align="right"><font color="#FF0000"> 
                        <%if (testo != "undefined") {%>
                        <font color="#000099">Ricerca "</font><%=testo%><font color="#000099">"</font></font></div></td>
                  </tr>
                  <tr> 
                    <td height="270" valign="top" bgcolor="#FFFFFF"> 
                      <%
    	if (testo == "" || testo == "undefined" || testo.charAt(0) == " ")
    	{
    		Response.Write("
    
    </p>");
    	}
    	else if (Mostra.EOF)
    	{
    		Response.Write("
    
    Spiacenti, ma nessun sito trovato con il termine richiesto</p>");
    	}
    	else
    	{
    		while (!Mostra.EOF)
    		{
    			with (Response)
    			{
                    Write("<table border=0>");
                    Write("<tr>");
                    Write("<td>");
    				Write("" + Mostra("titolo") + "
    ");
                    Write("");
                    Write("[img]" + Mostra("url_foto") + "[/img]");
                    Write("</td><td>") 
    				Write(Mostra("descrizione"));
    				Write("</td></tr></table>");
    			}
    			Mostra.MoveNext();
    		}
    	}
    %>
                      <%}%>
                    </td>
                  </tr>
                  <tr> 
                    <td height="19" bgcolor="#000099"></td>
                  </tr>
                </table>
              </div>
            </div></td>
        </tr>
      </table>
    </div>
    </body>
    </html>
    <%Cn.Close()%>
    Al quale vorrei aggiungere i campi 2 e 3 come detto prima

    Grazie a tutti per la collaborazione
    La Gratitudine è la prima cosa nella vita...

    Grazie a tutti

  4. #4
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    sinceramente adesso non ho la testa per mettermi a legger il codice...se guardi in off topic leggerai che mi hanno appena rubato il cellulare..quindi vedi se questo può esserti utile!

    il primo campo è sicuramente valorizzato...quindi spari la tua select con quel criterio, se il secondo campo è diverso da vuoto accodi alla select
    codice:
    " AND secondocampo='" & secondocriterio & "'"
    se il terzo campo è diverso da vuoto accodi
    codice:
    "AND terzocampo='" & terzocriterio & "'"
    puoi metterli in or ovviamente...
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  5. #5
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    scusa ho postato in vbscript vabbè è uguale!
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  6. #6
    allora, io ti chiedo scusa, ma non ho estrema padronanza del linguaggio, so che è una cavolata, ma potresti spiegarmi meglio come fare partendo dal codice che ho creato...?

    Ti chiedo scusa e mi dispiace per il tuo cellulare...!

    Grazie per la collaborazione
    La Gratitudine è la prima cosa nella vita...

    Grazie a tutti

  7. #7
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    vabbè dai...allora tu parli di un tre campi, il primo è obbligatorio, immagino che il primo campo lo recuperi così Request.Form("cerca") gisto? allora se ho capito bene anche se sto mezzo ubriaco quando recuperi gli altri due campi basta che li accodi dopo il ciclo prima dell'order by controllanodo che non siano vuoti!
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  8. #8
    ok, deduco che hai capito perfettamente, ogni campo punta allo stesso db, stessa tabella, ma campi diversi...

    il 3° campo è un menù a scelta, come posso intervenire?

    Grazie per il tuo aiuto...
    La Gratitudine è la prima cosa nella vita...

    Grazie a tutti

  9. #9
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    Originariamente inviato da Giuseppe C
    ok, deduco che hai capito perfettamente, ogni campo punta allo stesso db, stessa tabella, ma campi diversi...

    il 3° campo è un menù a scelta, come posso intervenire?

    Grazie per il tuo aiuto...
    con Request.Form("nomecampomenuatendina") risolvi, supponendo che sia valorizzato nel modo esatto nella pagina in cui c'è il form
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  10. #10
    si, questo l'ho capito, ma come devo intervenire sullo script...
    ti chiedo scusa ma non sono espertissimo...

    Grazie sia per la collaborazione che per la pazienza
    La Gratitudine è la prima cosa nella vita...

    Grazie a tutti

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.