ciao a tutti,
ho un motore di ricerca in ASP+MYSQL e il problema è questo:
dopo effettuata la ricerca e per esempio trovate 3 pagine con 25 documenti che appunto soddisfano la ricerca, quando si passa alla pagina 2 o 3 si perde la query e dato che al momento, per prova, ho 70 documenti e impostato il numero di doc per pagina a 10 le pagine passano da 3 a 7 e dice che ha trovato 70 documenti...
per prova ho fatto stampare la select e il risultato è questo appena effettuata la ricerca su la parola deliberazione:
e fino a qui tutto ok...codice:SELECT COUNT(*) AS temp FROM searchcom WHERE parola_chiave LIKE '%deliberazione%' or massime LIKE '%deliberazione%' Select * From searchcom Where ( parola_chiave like '%deliberazione% 'Or massime like '%deliberazione%' ) LIMIT 0, 1
quando clicco sulla pagina seguente stampa questo:
appunto la select è vuota perciò il risultato è che si perdono le 3 pagine perchè tira fuori tutto quello che c'è nel DB e diventano 7codice:SELECT COUNT(*) AS temp FROM searchcom WHERE parola_chiave LIKE '%%' or massime LIKE '%%' Select * From searchcom Where (parola_chiave like '%%' Or massime like '%%' ) LIMIT 1, 1
questa è la select per il conteggio:
e questa è la select per la ricerca:codice:sql1 = "SELECT COUNT(*) AS temp FROM searchcom WHERE parola_chiave LIKE '%" & request.form("search") & "%' or massime LIKE '%" & request.form("search") & "%' " set rs = cn.execute(sql1) Dim quanti, a, b quanti = CInt(rs("temp")) b = 1 a = (pag - 1) * b rs.Close
ho fatto molte prove, anche cambiare "request.form("word")" in "request.querystring("word")" ma niente di fatto...codice:if len(search) > 0 then 'If quanti > 0 Then Dim sql sql = "Select * From searchcom Where" If request.form("criterio") <> "ext" Then ArrSearch = Split(search) x = 0 for each Word In ArrSearch sql = sql & " ( parola_chiave like '%" & request.form("word") & "%' Or massime like '%" & request.form("word") & "%' ) " If Not x = UBound(ArrSearch) Then sql = sql & " or" ' x = x + 1 Next Else sql = sql & " ( parola_chiave like '%" & request.form("search") & "%'Or massime like '%" & request.form("search") & "%' ) " End If sql = sql & " LIMIT " & a & ", " & b rs.CursorType = adOpenDynamic rs.Open sql, cn
grazie a tutti per l' aiuto che potrete darmi a capire dov'è il problema...
Rob
ps se serve tutto il codice lo posto....

Rispondi quotando