Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    7

    paginazione ASP + MYSQL

    ciao a tutti, avrei bisogno di un aiuto per una paginazione ASP+MYSQL.
    ho cambiato paginazione dato che quella che avevo prima con ACCESS non va, il problema è Absolutepage che ho saputo da ricerche sul web, non e' supportato da MYSQL...
    questa che ho funziona bene per una lettura del DB normale, ma dato che l'ho allegata ad un motore di ricerca mi da un problema che non so risolvere senza Absolutepage.
    cosi' come e' il codice adesso conta sempre tutti i record, ma a me chiaramente serve che conti i record trovati in base alla ricerca.

    nel DB al momento per provare, ho inserito solo 19 record e in base ad una ricerca soddisfatta con solo 2 record, dice chiaramente sempre 19 trovati e crea una seconda pagina vuota (ho impostato risultati per pagina=10)
    grazie a tutti per l' aiuto che potrete darmi...
    Rob
    codice
    --------------
    <%
    PageName = Request.ServerVariables("PATH_INFO")
    SearchMethod = Request.ServerVariables("REQUEST_METHOD")






    Dim pag
    pag = Request.QueryString("pag")
    If IsNumeric(pag) = False Or pag < 1 Then pag = 1

    If SearchMethod = "POST" Then

    search = request.form("search")

    ElseIf SearchMethod = "GET" Then
    search = request.QueryString("search")

    End If





    %>


    <form method="post" action="default.asp?go=searchcom3" name="editform">
    <input type="radio" name="criterio" value="ext" checked> frase esatta<input type="radio" name="criterio" value="all"> tutte le parole

    <input type="text" name="search" size="30" value="<%=search%>">
    <input type="submit" value="CERCA" name="submit" class=box onMouseOver="this.className='submit'" onmouseOut="this.className='box'" onFocus="this.blur()">
    </form>

    </td>
    <%
    session ("search") = request.form ("search")
    %>
    </tr>
    <tr bgcolor="">
    <td colspan="3" align="left" class="text" height="1"></td>
    </tr>
    </form>
    <script language="javascript">document.editform.search.foc us();</script>
    <% If SearchMethod = "POST" And len(search) = 0 Then %>
    <tr>
    <td colspan="3" height="60" align="center" class="text" bgcolor="#FFFFFF">Digitare un testo per la ricerca</td>
    </tr>
    <tr bgcolor="#000033">
    <td colspan="3" height="1"></td>
    </tr>

    <% End If %>
    <%
    if len(search) > 0 then






    'connessione mysql
    Dim cn, rs
    Set cn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")
    cn.open = "driver={MySQL ODBC 3.51 Driver};server=;database=;uid=;pwd="




    rs.Open "SELECT COUNT(*) AS temp FROM searchcom", cn, 3 ,3
    Dim quanti, a, b
    quanti = CInt(rs("temp"))
    b = 10
    a = (pag - 1) * b
    rs.Close
    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 & " (doc like '%" & Replace(word, "'", "''") & "%' Or parola_chiave like '%" & Replace(word, "'", "''") & "%' Or anno like '%" & Replace(word, "'", "''") & "%' Or data like '%" & Replace(word, "'", "''") & "%'Or massime like '%" & Replace(word, "'", "''") & "%' ) "
    If Not x = UBound(ArrSearch) Then sql = sql & " or"

    ' Se preferisci la ricerca di una qualsiasi delle parole inserite
    ' in tutti dodumenti usa questo codice:
    ' If Not x = UBound(ArrSearch) Then sql = sql & " Or"


    x = x + 1
    Next

    Else
    sql = sql & " (doc like '%" & Replace(search, "'", "''") & "%' Or parola_chiave like '%" & Replace(search, "'", "''") & "%'Or anno like '%" & Replace(search, "'", "''") & "%' Or data like '%" & Replace(search, "'", "''") & "%'Or massime like '%" & Replace(search, "'", "''") & "%' ) "
    End If


    sql = sql & " LIMIT " & a & ", " & b
    rs.CursorType = adOpenDynamic
    rs.Open sql, cn




    If rs.Eof=True or rs.Bof=True then
    Response.Write "

    Nessun risultato trovato</P>"
    Else




    %>
    -
    <td colspan="3" class="text" bgcolor="#FFFFFF">Pagina
    <%=pag%>/<%=intero%>
    Risultati relativi alla ricerca:<span style="background-color: #ffff00; color: #ff0000">"<%=search%>"</span> - Totale documenti
    trovati <%=quanti%>
    </td>



    <%
    response.Write "<td class=""link"" valign=""top"" colspan=""""><div align=""justify"">[b]<a class='link' href=""defaultnew.asp?go=anteprimacom&id=" & rs("id") & "&search=" & Server.UrlEncode(search)& """><font color=""black"">" & EvidenziaParola(Left(rs("doc"),191), search, "<span style=""background-color:#ffff00; color: #ff0000"">", "</span>")
    If Len(rs("doc")) > 10 Then Response.write "..."
    response.Write "</a></font>
    </div></td></tr>"
    %>
    <%
    Dim i, intero
    i = 1
    intero = CInt(quanti / b)
    If quanti > (intero * b) Then
    intero = intero + 1
    End If
    %>
    Pagina <%=pag%> di <%=intero%>


    <%
    For i = 1 To intero
    If CInt(i) = CInt(pag) Then
    %>
    [<%=i%>]
    <%
    Else
    %>
    [<%=i%>]

    spero che sia utile per capire meglio il mio problema.....
    grazie ancora
    Rob

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Con MySQL puoi usare nella query la proprietà LIMIT:
    http://database.html.it/articoli/leg...l-tramite-asp/

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    7
    ciao, vedo che abbiamo due cose in comune...il nome e la città...

    allora, la proprietà Limit nel codice c'è e infatti funziona, e che allegando questa paginazione ad un motore di ricerca le cose si complicano, conta sempre tutti i record che ci sono nel DB.
    a me occore che conti solo quelli relativi alla ricerca, mi è stato anche consigliato di usare "request.queryString("Ricerca")" nella query così dovrebbe contare solo, appunto, i dati inerenti alla ricerca, ma non essendo una cima...non ci sono ancora riuscito...
    se leggendo il mio codice riesci a dirmi la sintassi da usare ti sarei grato....
    grazie!
    ciao
    Rob

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.