Buongiorno e scusate per il disturbo,
ma non ne riesco a venir fuori.
Premetto di non essere esperto, però ho necessità di condurre un lavoro in porto. Espongo il problema:
ho una pagina in cui c'è un form per la ricerca full text su 2 campi di una query access. Trattandosi di una joint uno a molti succede che per una singola azienda ci sono più record. Il problema nasce, appunto, con la ricerca dal momento che nel campo dettaglioProdotto sicuramente il contenuto è diverso in ogni record, mentre il campo schedaTesto si replica in ogni record, sicchè il risultato della ricerca, soprattutto se si trova qualcosa proprio in scheda testo, è la replica della stessa azienda su più righe.
Avevo allora pensato di buttar giù uno script che valutasse l'IDAzienda e in base al suo valore visualizzasse o meno il record.
Lo script è questo:
<%
var cerca = new String(Request.QueryString("cerca"));
var testo = new String(Request.Form("stringa"));
var apice = testo.replace(/'/g,"''");
var stringa = apice.split(" ");
var idAZ = 0;
if (cerca == "OK")
{
if (testo == "" || testo == "undefined")
{
Response.Write("
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/SpesaAz.mdb"));
var sql = "SELECT * FROM AziendeProdotti where ";
for (var i=0; i<stringa.length; i++)
{
if (i > 0)
{
sql += " AND";
}
sql += " DettaglioProdotto + SchedaTesto LIKE '%" + stringa[i] + "%'";
}
sql += "ORDER BY Citta ASC";
var Mostra = Cn.Execute(sql);
if (Mostra.EOF)
{
Response.Write("
Nessun risultato</p>");
}
else
{
while (!Mostra.EOF)
{
with (Response)
{
if (Mostra("IDAzienda") != idAZ)
{
var idAZ = (Mostra("IDAzienda")) ;
Write("
");
Write("[img]Images/Freccina3.gif[/img]");
Write(" ");
Write("" +Mostra("Denominazione") + "
");
Write(" - ");
Write(Mostra("Citta"));
Write("</p>");
Mostra.MoveNext();
}
else
{
var idAZ = (Mostra("IDAzienda")) ;
Mostra.MoveNext();
}
}
}
}
Cn.Close();
}
}
%>
il problema è che mi visualizza solo il primo record che soddisfa la condizione e poi basta. Da qualche parte cè un qualche errore logico che però non riesco a vedere
Mi potreste dare una mano?
Grazie

Rispondi quotando