Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Gio&Ste
    Registrato dal
    Jan 2001
    Messaggi
    643

    select x motore di ricerca

    Sto cercando di adattare una select per un motore di ricerca.

    Così funziona:
    codice:
    <%	Response.Buffer = true;
    	 Response.Write(cerca)
    	var Cn = new ActiveXObject("ADODB.Connection");
    		Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("mdb-database/db.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 articolo WHERE ";
    		for (var i=0; i<cerca.length; i++)
    		{
    			if (i > 0) sql += " AND";
    			sql += " Oggetto LIKE '%" + cerca[i] + "%'";
    		}
    		sql += " ORDER BY Id Desc";
    	var Mostra = Cn.Execute(sql);
    %>
    così invece mi da errore:

    codice:
    <% testo = Request.Form("cerca") %>
    <%		Set objConn = Server.CreateObject("ADODB.Connection")
    		strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("mdb-database/db.mdb")
    		Set objRs = Server.CreateObject("ADODB.Recordset")
    		SQL = "SELECT * FROM articoli WHERE Oggetto LIKE "& testo &" ORDER BY Id Desc"
    		objRs.Open Sql, objConn, adOpenDynamic, adLockOptimistic
    %>
    Inoltre non ho bene idea di come devo fare il replace per separare le parole chiave.
    Giò

  2. #2
    gli apici

    codice:
    SQL = "SELECT * FROM articoli WHERE Oggetto LIKE '"& testo &"'   ORDER BY Id Desc"
    e poi il like ... guarda bene come funziona la funzione(gioco di parole pardon)
    se non è bello ciò che è bello figuriamoci ciò che è brutto!!



    fai anche tu come me: indenta il codice!!!!

  3. #3
    Utente di HTML.it L'avatar di Gio&Ste
    Registrato dal
    Jan 2001
    Messaggi
    643
    e poi come dovrei invece fare per separare le parole chiavi con il replace? ed inserirle nella query?
    Giò

  4. #4
    vengono inserite con gli spazi? potresti separarle con uno split ... credo, ma dimmi come ti arrivano ...
    se non è bello ciò che è bello figuriamoci ciò che è brutto!!



    fai anche tu come me: indenta il codice!!!!

  5. #5
    Utente di HTML.it L'avatar di Gio&Ste
    Registrato dal
    Jan 2001
    Messaggi
    643
    In realtà è uno script per un motore di ricerca che avevo trovato non mi ricordo più dove.
    Ad un certo punto c'è:
    codice:
    var r_testo = testo.replace(/'/g,"''");
    	var cerca = r_testo.split(" "); // Tutte le parole chiave devono essere separate da uno spazio vuoto
    e nella query
    codice:
    		for (var i=0; i<cerca.length; i++)
    		{
    			if (i > 0) sql += " AND";
    			sql += " Oggetto LIKE '%" + cerca[i] + "%'";
    		}
    mi sembra che conti le parole chiave e le inserisca separate da uno spazio nella query, ma sinceramente non capisco perchè hanno fatto così
    Giò

  6. #6
    in realtà le parole vengono messe in un array con lo split ... poi l'array viene ciclato e vengono composti tutti i like del where, in questo caso, messi tutti in and ... chiaro? (speriamo?!) :-)
    se non è bello ciò che è bello figuriamoci ciò che è brutto!!



    fai anche tu come me: indenta il codice!!!!

  7. #7
    Utente di HTML.it L'avatar di Gio&Ste
    Registrato dal
    Jan 2001
    Messaggi
    643
    In poche parole è come se eseguisse la query per ogni parola chiave?
    Giò

  8. #8
    Utente di HTML.it L'avatar di Gio&Ste
    Registrato dal
    Jan 2001
    Messaggi
    643
    Estraggo i dati in questo modo, ma non miu piace come viene formattata la data

    codice:
      if (testo != "undefined") {%>
    
    
    Risultati della ricerca per il termine <span class="evidenza"><%=testo%></span></p>
    <%
    	if (testo == "" || testo == "undefined" || testo.charAt(0) == " ")
    	{
    		Response.Write("
    
    Inserire un termine per effettuare una ricerca</p>");
    	}
    	else if (Mostra.EOF)
    	{
    		Response.Write("
    
    Nessun risultato</p>");
    	}
    	else
    	{
    		while (!Mostra.EOF)
    		{
    			with (Response)
    			{
    				Write("
    
    ");
    				Write("<a href=http://www.miosito.it/stampa/show_title2.asp?nyhetsID=" + Mostra("ID") + ">" + Mostra("Oggetto") + "</a>
    "); 
    				Write("articolo pubblicato il ");
    				Write(Mostra("data ") + " numero " + Mostra("Numero") + " di " + Mostra("Tipo") + "
    ");
    				Write("</p>");
    			}
    			Mostra.MoveNext();
    		}
    	}
    %>
    <%}%>
    Il risultato sulla data è del tipo Tue Apr 27 00:00:00 UTC+0200 2004
    Giò

  9. #9

  10. #10
    Utente di HTML.it L'avatar di Gio&Ste
    Registrato dal
    Jan 2001
    Messaggi
    643
    lo so come si formatta una data, ma non sto riuscendo ad integrarlo con il mio script
    Giò

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.