Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Motore di ricerca + paginazione = casino!

    Salve, con tanta fatica sono riuscito a mettere insieme un motore di ricerca abbastanza completo, con una "semplice" paginazione dei risultati. Fin qui tutto ok, però c'è il solito problema... ossia non riesco a fargli avanzare di pagina o meglio all'avanzamento di pagina, la seconda appare priva di risultati.

    Vi posto il codice ripulito della grafica e fronzoli vari non importanti alla risoluzione del problema, ma vi anticipo che non sono molto esperto in ASP, tuttavia mi piace smanettare (in ASP intendo, eh! )
    Anche la struttura è da sistemare, ma prima volevo risolvere questo problema.
    Ormai sono giorni che mi sbatto ma non sono riuscito a trovare una soluzione.

    Codice PHP:


    <FORM action="default2.asp?Azione=RICERCA" method=post name=form1>


    <
    font face="Verdana" size="2">Cerca:</font><INPUT name=Parole size=40
        <
    INPUT type="submit" value="Cerca" name=submit1></font>

        
        
    Tipo di ricerca: <SELECT name=Tiporicerca>
            <
    OPTION value=PARTE selected>Almeno una parola presente</OPTION>
            <
    OPTION checked value=TUTTE>Tutte le parole presenti</OPTION>
            </
    SELECT>


        
    Ricerca in questa categoria: <SELECT name=Genere>
      <
    OPTION VALUE=NULLO checked selected>------------------</OPTION>
      <
    OPTION value=Agricoltura>Agricoltura</OPTION> <OPTION value=Amministrazione>Amministrazione</OPTION
      <
    OPTION value=Animali>Animali</OPTION> <OPTION value=Archeologia>Archeologia</OPTION
      <
    OPTION value=Architettura>Architettura</OPTION></SELECT>



      
          
    Ordina per:<SELECT name=Ordine>
            <
    OPTION CHECKED VALUE=Data selected>Data</OPTION>        
            <
    OPTION VALUE=titolo_libro>Titolo</OPTION>
            <
    OPTION VALUE=Genere>Genere</OPTION>
            <
    option value="Visite">Visite</option>
            <
    option value="Autore">Autore</option>
            <
    option value="Prezzo">Prezzo</option>
            </
    SELECT></font></td>
     
        </
    FORM>


    <
    p style="margin-top: 10; margin-left: 10">

    <
    table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
      <
    tr>
        <
    td width="100%">
    <%
    Dim conn,iPageSize,iPageCount,iPageCurrent,strOrderBy,RS,iRecordsShown


    iPageSize 
    10

    If Request.QueryString("page") = "" Then 
       iPageCurrent 

    Else 

       
    iPageCurrent CInt(Request.QueryString("page")) 
    End If 



    Dim AzioneParole
    Azione 
    Request.QueryString ("Azione")
    IF 
    Azione "RICERCA" THEN
    strSQL 
    "SELECT ID, titolo_libro, Autore, descrizione_libro, keyword, Data, email, url_sito, url_immagine, Prezzo, clicks, clickunici, Genere FROM Libri "
    Parole Trim(Request.Form ("Parole"))
    Tiporicerca Request.Form("Tiporicerca")
    Genere Request.Form ("Genere")
    Ordine Request.Form ("Ordine")
    Dim arrayParoleLegameIstringa,IIstringaIIIstringaGenere
    Dim Ordine
    TiporicercastrSQL
    arrayParole
    =split(Parole," ",3)
    If 
    Parole <> "" then
    If Tiporicerca "TUTTE" then
    Legame 
    " AND " 
    Else
    Legame " OR "
    End if

    Istringa "(keyword LIKE '%" arrayParole(0) & "%' OR titolo_libro LIKE '%" arrayParole(0) & "%' OR descrizione_libro LIKE '%" arrayParole(0) & "%' OR Autore LIKE '%" arrayParole(0) & "%'"

    'Istringa = "(keyword LIKE '
    %" & arrayParole(0) & "%'"
    '
    Istringa "(titolo_libro LIKE '%" arrayParole(0) & "%'"

    If Ubound(Arrayparole)>0 then
    Istringa 
    Istringa Legame " keyword LIKE '%"&arrayParole(1)&"%'"
    'Istringa = Istringa & Legame & " titolo_libro LIKE '
    %"&arrayParole(1)&"%'"


        If Ubound(Arrayparole)>1 then
        Istringa = Istringa & Legame & " keyword LIKE '
    %"&arrayParole(2)&"%')"
        '
    Istringa Istringa Legame " titolo_libro LIKE '%"&arrayParole(2)&"%')"
        
        
    Else
        
    Istringa Istringa &")"
    End if
    Else
    Istringa Istringa ")"
    End if    
    strSQL strSQL " WHERE "&Istringa 
    End 
    if
    If 
    Genere <> "NULLO" AND Parole<>"" then
    SELECT 
    CASE Genere
        
    CASE "Blu"
        
    IIstringa =" AND (Genere='Blu')"
        
    CASE "Fantascienza"
        
    IIstringa ="AND (Genere='Fantascienza')"

        
    END SELECT    
    strSQL 
    =strSQL IIstringa
    Elseif Genere <> "NULLO" AND Parole="" Then
    SELECT 
    CASE Genere
        
    CASE "Agricoltura"
        
    IIstringa =" WHERE (Genere='Agricoltura')"
        
    CASE "Amministrazione"
        
    IIstringa =" WHERE (Genere='Amministrazione')"
        
    CASE "Animali"
        
    IIstringa =" WHERE (Genere='Animali')"
        
    CASE "Archeologia"
        
    IIstringa =" WHERE (Genere='Archeologia')"
        
    CASE "Architettura"
        
    IIstringa =" WHERE (Genere='Architettura')"
        
        
    END SELECT    
    strSQL 
    =strSQL IIstringa
    End 
    if
    SELECT CASE Ordine
        
    CASE "Data"
        
    IIIstringa =" ORDER BY ID DESC"
        
    CASE "titolo_libro"
        
    IIIstringa =" ORDER BY titolo_libro ASC"
        
    CASE "Genere"
        
    IIIstringa =" ORDER BY Genere ASC"
        
    CASE "Visite"
        
    IIIstringa =" ORDER BY clickunici DESC"
        
    CASE "Autore "
        
    IIIstringa =" ORDER BY Autore ASC"
        
    CASE "Prezzo"
        
    IIIstringa =" ORDER BY Prezzo ASC"
    END SELECT    

    strSQL 
    =strSQL IIIstringa


        Dim objConn
    ,ObjRS 
        Set objConn 
    Server.CreateObject("ADODB.Connection"
        
    objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="Server.MapPath("db\books.mdb")
        
    Set objRS Server.CreateObject ("ADODB.Recordset")


    objRS.Open strSQLobjConnadOpenKeyset

    objRS
    .PageSize iPageSize 
    objRS
    .CacheSize iPageSize 
    iPageCount 
    objRS.PageCount 

    If iPageCurrent iPageCount Then iPageCurrent iPageCount 
    If iPageCurrent 1 Then iPageCurrent 1
    If iPageCount 0 Then
        Response
    .Write("Nessun record visualizzato!")

    Else 
        
    objRS.AbsolutePage iPageCurrent 

    iRecordsShown 

    Do While iRecordsShown iPageSize And Not objRS.EOF 
    %>

    [
    b]<%=objRS("titolo_libro")%>[/b]

    <%=
    objRS("descrizione_libro")%>



    <%

    iRecordsShown iRecordsShown 1
    objRS
    .MoveNext
    Loop 

    End 
    If 
    objRS.Close 

    Set objRS
    Nothing 

    objConn
    .Close %>

    <
    p align="center">[b]<font face="Verdana" size="2" color="#0F467D"><% If iPageCurrent <> 1 Then %>
    [
    url="default2.asp?Azione=RICERCA?page=<%= iPageCurrent - 1 %>&order=<%= Server.URLEncode(strOrderBy) %>"]< Indietro[/url]
    <% 
    End If %>

    <% If 
    iPageCurrent iPageCount Then %>

    [
    url="default2.asp?Azione=RICERCA?page=<%= iPageCurrent + 1 %>&order=<%= Server.URLEncode(strOrderBy) %>"]Avanti >[/url]</font>
      
    <% 
    End If %>

    <% 
    End If %>

    </
    table

  2. #2
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    ciao Psycho Mantys, hai lo stesso problema mio..ora provo il tuo codice col mio db e vediamo cosa si risolve...

  3. #3
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    Psycho Mantys mi manderesti il tuo database così provo?

    se si l email è lino80@email.it


  4. #4
    Guarda ad occhio nel link alle successive pagine della paginazione non ti porti dietro le parole chiavi utilizzate per la ricerca....
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Si lo credo anche io, solo che non ho idea di come fare per portarmi dietro i valori della ricerca.

  6. #6
    Originariamente inviato da Psycho Mantys
    Si lo credo anche io, solo che non ho idea di come fare per portarmi dietro i valori della ricerca.

    li metti in querystring magari con "link.asp?keys=PAROLA1+PAROLA2+PAROLA3&pag=2.. ." e poi invece di request.form usi il request.querystring("keys") e ci lavori sopra...insomma, ingegnati
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Niente da fare, non sono riuscito a far qualcosa di funzionante. Qualcuno mi darebbe una mano? per favore

  8. #8
    Originariamente inviato da Psycho Mantys
    Niente da fare, non sono riuscito a far qualcosa di funzionante. Qualcuno mi darebbe una mano? per favore
    non mi pareva difficilissima la cosa, innanzitutto dovevi cambiare

    codice:
    Parole = Trim(Request.Form ("Parole"))
    in

    codice:
    Parole=trim(Request("Parole"))
    poi i link per andare alle pagine successive sarà qualcosa del tipo:

    codice:
    
    PAG 2

    insomma, ti sei fatto un motore di ricerca, fare un link è piu semplice
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Finalmente ho risolto >_>

    Per la cronaca con le seguenti righe finali:

    Codice PHP:
    <% If iPageCurrent <> 1 Then %>

    <
    a href="default2.asp?azione=RICERCA&parole=<%= Server.URLEncode(parole) %>&Tiporicerca=<%= Server.URLEncode(Tiporicerca) %>&Genere=<%= Server.URLEncode(Genere) %>&page=<%=i%>&ordine=<%= Server.URLEncode(ordine) %>" style="text-decoration: none">
    Inizio</a>

    [
    url="default2.asp?azione=RICERCA&parole=<%= Server.URLEncode(parole) %>&Tiporicerca=<%= Server.URLEncode(Tiporicerca) %>&Genere=<%= Server.URLEncode(Genere) %>&page=<%= iPageCurrent - 1 %>&ordine=<%= Server.URLEncode(ordine) %>"]<font color="#303030">[img]img/rec_ind.gif[/imgIndietro</font>[/url]<font face="Verdana" size="2" color="#303030">

    <% 
    End If %>

    <% If 
    iPageCurrent iPageCount Then %>

    <
    a href="default2.asp?azione=RICERCA&parole=<%= Server.URLEncode(parole) %>&Tiporicerca=<%= Server.URLEncode(Tiporicerca) %>&Genere=<%= Server.URLEncode(Genere) %>&page=<%= iPageCurrent + 1 %>&ordine=<%= Server.URLEncode(ordine) %>" style="text-decoration: none">
    Avanti</a>

    <
    a href="default2.asp?azione=RICERCA&parole=<%= Server.URLEncode(parole) %>&Tiporicerca=<%= Server.URLEncode(Tiporicerca) %>&Genere=<%= Server.URLEncode(Genere) %>&page=<%=iPageCount%>&ordine=<%= Server.URLEncode(ordine) %>" style="text-decoration: none">
    Fine</a>  

    <% 
    End If %>

    [
    Pagina <%=iPageCurrent%> di <%=iPageCount%>] 

    Però ora volendo modificare un'altra cosa mi è nato un altro problema, ma prima tenterò di risolverlo

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 © 2026 vBulletin Solutions, Inc. All rights reserved.