Problema con script search.asp Lukeonweb

TaniaPellizzari

Nuovo Utente
26 Lug 2007
4
0
0
Ciao Ho scaricato lo script per il motore di ricerca perchè è esattamente quello di cui avrei bisogno.
Putroppo lo script non funziona.
Continua a darmi un errore, questo:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/nuovosito/cerca.asp, line 39

La linea 39 è la seguente
Codice:
            var Mostra = Cn.Execute(sql);

Premetto che non ho modificato una virgola di codice, fatta eccezione per la path del database (che è giusta) e la tabella di ricerca (giusta pure quella) e i recordset di riferimento. Di seguito tutto il codice
Codice:
<%@LANGUAGE = JScript%>
<html>
    <head>
        <title>Cerca nel sito</title>
    </head>
<body>

<h3>Cerca nel sito</h3>

<form method="POST" action="cerca.asp?cerca=OK">
    <input type="text" name="stringa">
    <input type="submit" value="Cerca">
</form>

<%
    var cerca = new String(Request.QueryString("cerca"));
    var testo = new String(Request.Form("stringa"));
    var apice = testo.replace(/'/g,"''");
    var stringa = apice.split(" ");
    if (cerca == "OK")
    {
        if (testo == "" || testo == "undefined")
        {
            Response.Write("<p>Inserire almeno una parola per effettuare una rcerca</p>");
        }
        else
        {
            var Cn = new ActiveXObject("ADODB.Connection");
                Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("/mdb-database/database.mdb"));
            var sql = "SELECT * FROM Notizie WHERE";
            for (var i=0; i<stringa.length; i++)
            {
                if (i > 0)
                {
                    sql += " AND";
                }
                sql += " descrizione LIKE '%" + stringa[i] + "%'";
            }
            var Mostra = Cn.Execute(sql);
            if (Mostra.EOF)
            {
                Response.Write("<p>Nessun risultato</p>");
            }
            else
            {
                while (!Mostra.EOF)
                {
                    with (Response)
                    {
                        Write("<p>");
                        Write("<a href='" + Mostra("Titolo") + "'>" +Mostra("Titolo") + "</a><br>");
                        Write(Mostra("descrizione"));
                        Write("</p>");
                        Mostra.MoveNext();
                    }
                }
            }
            Cn.Close();
        }
    }
%>

</body>
</html>

Grazie per l'aiuto :moira:
 

PoLe

MRW Moderator
6 Giu 2005
2.210
3
0
37
.: Venezia :.
www.bzconsulting.it
Ciao :)

Fatti stampare a video la query, secondo me l'errore dipende dal fatto che almeno in un "stringa" nel WHERE vengono immagazzinati parametri NULL ;)

Codice:
descrizione LIKE '%" +[COLOR="Red"] stringa[i][/COLOR] + "%'
 

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
Cosi:

// var Mostra = Cn.Execute(sql);
Response.Write(sql);

Comunque:

1. lo script funziona perchè quando lo realizzai lo testai :)

2. verifica che non ci siano nomi dei campi differenti nello script da quelli che hai sul database.

Ciao!
 

TaniaPellizzari

Nuovo Utente
26 Lug 2007
4
0
0
Cosi:

// var Mostra = Cn.Execute(sql);
Response.Write(sql);

Comunque:

1. lo script funziona perchè quando lo realizzai lo testai :)

2. verifica che non ci siano nomi dei campi differenti nello script da quelli che hai sul database.

Ciao!

:D
che demente che sono...
hai ragione, richiamavo una colonna descrizione che non esiste.
:rolleyes:

Risolto
Thanks
 

TaniaPellizzari

Nuovo Utente
26 Lug 2007
4
0
0
e se volessi che questo motore cercasse in diverse tabelle dello stesso database?
esempio: la tabella novita, quella documenti, quella articoli, quella download ecc.???

e... altra cosa.
Visto che alcune tabelle hanno una struttura differente, posso inserire anzichè il nome del campo (es. titolo) un riferimento generale? es
Codice:
<%=rs(1)%>

se mi aiuti ti :elvis: una bella canzone :D
 

LunaBlu

Nuovo Utente
13 Giu 2007
7
0
0
2 input da ricercare

Ciao,
vorrei aggiungere 2 parole separate da ricercare, esempio:

<form method="POST" action="cerca.asp?cerca=OK">
<input type="text" name="Cognome">
<input type="text" name="Nome">
<input type="submit" value="Cerca">
</form>

Per ricercare nella database ci sono 2 campi: una di "cognome" e una di "nome" e non so come si fa a mettere:

var Cn = new ActiveXObject("ADODB.Connection");
Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("/mdb-database/anagrafici.mdb"));
var sql = "SELECT * FROM Lista WHERE";
for (var i=0; i<stringa.length; i++)
{
if (i > 0)
{
sql += " AND";
}
sql += " cognome LIKE '%" + stringa + "%'";
sql += " nome LIKE '%" + stringa + "%'";


}

mi da errore:
Microsoft OLE DB Provider.......... Errore di sintassi (operatore mancante) nell'espressione della query 'cognome LIKE '%ROSSI%' nome LIKE '%ROSSI%".

Aiutatemi... ma sono molto complicato!!! Grazie
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Ti sei dimenticato l'operatore AND. Prova a cambiare questa riga:
Codice:
sql += " cognome LIKE '%" + stringa[i] + "%'";
Così:
Codice:
sql += " cognome LIKE '%" + stringa[i] + "%' AND";

Adesso però mi sorge un dubbio. In questa maniera se in nome inserisco pinco e in cognome inserisco pallino, lui cercherà tutti i record che hanno il nome che contiene pinco e il cognome che contiene pallino.
Se invece vuoi fare in modo che anche solo una delle corrispondenze soddisfi i criteri di ricerca, basta cambiare AND con OR.
 

LunaBlu

Nuovo Utente
13 Giu 2007
7
0
0
Grazie mille,ho saputo dopo di inviare questo post, tutto risolto ma purtroppo mi sono ancora complicato perchè quando inserisco cognome = "rossi" e nome = "paolo" e la ricerca viene visualizzata solo cognome e non c'è nome.

Ho trovato la soluzione e ho modificato alcune righe :

<%
var cerca = new String(Request.QueryString("cerca"));
var testo = new String(Request.Form("stringa"));
var testo2 = new String(Request.Form("stringa2"));
var apice = testo.replace(/'/g,"''");
var apice2 = testo2.replace(/'/g,"''");
var stringa = apice.split(" ");
var stringa2 = apice2.split(" ");
if (cerca == "OK")
{
if (testo == "" || testo == "undefined")
{
Response.Write("<p>Inserire almeno una parola per effettuare una ricerca</p>");
}
else
{
var Cn = new ActiveXObject("ADODB.Connection");
Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("/mdb-database/anagrafici.mdb"));
var sql = "SELECT * FROM Lista WHERE";

sql += " cognome '" + stringa + "'";
sql += " AND nome '" + stringa2 + "'";

}
var Mostra = Cn.Execute(sql);
if (Mostra.EOF)
{
Response.Write("<p>Nessun risultato</p>");
}
else
{
while (!Mostra.EOF)
{
with (Response)
{
Write("<p>");
Write("Mostra("cognome") + "</a><br>");
Write(Mostra("nome"));
Write("</p>");
Mostra.MoveNext();
}
}
}
Cn.Close();
}
}
%>


Sono riuscito e vai!!! :eek:)

Ciao
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Problema con script php-javascript PHP 2
P immagine responsive problema con script jquery jQuery 0
A Problema con Script js Javascript 1
S Problema con 2 script nella stessa pagina Javascript 1
S problema con ajax semplice login script Javascript 8
E Problema con uno script php PHP 1
P Problema con uno script Javascript 0
L problema invio newsletter con script proprio in php PHP 10
A fancyBox script - problema con pulsanti jQuery 2
G Problema con questo script jQuery 1
P Problema con script facebox Javascript 0
C problema con script di lista suggerimenti Javascript 3
A Problema con uno script js Javascript 0
T Problema con script di registrazione utenti su IE PHP 4
neo996sps Problema con query e script PHP PHP 4
O problema con script tell a friend Javascript 3
L problema con script php PHP 9
F problema con script book galleri Flash 0
E Problema con script ajax+php Ajax 2
B Problema invio mail con script php verso i dominii libero PHP 9
M Problema con script rotazione testo Javascript 3
muvadi problema con script di una gallery PHP 1
P [PHP] problema script con checkbox! PHP 0
M Problema con script PHP 6
K Per EWIND, piccolo problema con lo script Flash 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0

Discussioni simili