Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Impaginazione

  1. #1
    Utente bannato
    Registrato dal
    Sep 2004
    Messaggi
    115

    Impaginazione

    Salve ragazzi,
    ho problema riguardo l'impaginazione utilizzando ASP + MySql.
    Nel codice che segue l'impaginazione funziona bene, il numero di pagine si crea correttamente, i record vengono divisi come necessito solo che il mio problema è quello dei collegamenti alle pagine.
    Mi spiego meglio, se io mi porto su uno dei collegamenti alle pagine come 1,2,3 mi esce giustamente
    default.asp?cat=esempio_cat&page=1
    default.asp?cat=esempio_cat&page=2
    default.asp?cat=esempio_cat&page=3

    solo che ognuna di esse mi porta comunque alla pagina 1 anche se è la 2 o la 3.

    Ecco il codice:
    codice:
    <%
    ' Estrazione della pagina
    page = TRIM( Request( "page" ) )
    IF page = "" THEN page = 1 
    if not IsNumeric(page) then 
    page = 1 
    else 
    page = CInt(page) 
    if page < 1 then page = 1 
    end if
    
    ' Apertura recordset , se la quantità scende sotto 5 in giacenza il prodotto non è visibile
    Set prodRS = Server.CreateObject( "ADODB.Recordset" )
    prodRS.ActiveConnection = Con
    prodRS.CursorType = adOpenStatic
    sqlString = "SELECT product_id, product_picture, product_name, product_sconto, product_briefDescITA, product_price " &_
      "FROM Products WHERE product_categoryITA='" & cat & "' " &_
      "AND product_status = 1 " &_
      "AND product_giacenza > 5 " &_    
      "ORDER BY product_name " &_
      "LIMIT " & ((page-1)*8) & ", 8;" 
    prodRS.Open sqlString
    
    SQLCount = "Select Count(*) as totale FROM Products WHERE product_categoryITA='" & cat & "'"
    set rsCount = Con.Execute(SQLCount)
    'valorizzo il numero dei record totali
    totale = rsCount("totale")                 
    rsCount.Close
    set rsCount = Nothing
    'valorizzo il numero delle pagine totali 
    numpagine = totale / 8						
    
    ' correzione di eventuali imprecisioni sul valore numpagine	
    if numpagine <> Int(numpagine) then 
    numpagine = Int(numpagine) + 1 
    end if 
    %>
    <table width="100%" border=0 cellpadding=1 cellspacing=0>
    	<tr>
    		<td align="center" colspan="2">
    		
    		<font color="blue" face="verdana" size="1">
    		Pagine:  
    		<%
      		FOR i = 1 to numpagine
    		%>
    		<a href="default.asp?cat=<%=cat%> & page=<%=i%>">
    		<%=i%>
    		</a>		
    		<% 
    		NEXT
      		%>
      		</font>
    		
    		</td>
    	</tr>
    <tr>
    <td>
    Secondo me "page" viene valorizzata male, almeno per i collegamenti dal 1 in sù;
    infatti cambiando
    codice:
    <a href="default.asp?cat=<%=cat%> & page=<%=i%>"> 
    <%=i%> 
    </a>
    con
    codice:
    <a href="default.asp?cat=<%=cat%> & page=<%=i%>"> 
    <%=page%> 
    </a>
    ho constatato quanto detto sopra, ovvero che page è sempre = 1

    Qualcuno riesce ad aiutarmi per capire dove stà il problema !!??
    Grazie!

  2. #2
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    se usi la barra (\) ti rende un risultato parziale, cioè se hai 5 e lo dividi per 2 non ottieni 2.5 ma 2...


    5\2=2

    se invece usi / allora

    5/2=2.5 e se usi cint() ottieni 3...



    detto questo probabilmente succede questo :


    totale dei tuoi record = 10

    tua operazione--> 10\8 = 0 + 1 = 1 quindi i equrarrà sempre a 1 (solo perche sommi 1 al risultato :rollo: ) finche non sorpasserai i 16 record (credo)

  3. #3
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    VVoVe: la barra è tornata inversa VVoVe:


    ma hai fatto modifiche?



    ma... ma... ma...



    comunque il discorso e valido lo stesso perche' se non arrivi a 8 record, al momento di restituire un intero ti da 0...

  4. #4
    Utente bannato
    Registrato dal
    Sep 2004
    Messaggi
    115
    Ho sempre usato la barra di divisione (/) ....
    se i record totali sono 14, diviso i record per pagina (8):
    14/8 = 1,75 , cmq questi record dal 9 alla 14 vanno nella seconda pagina per cui, 1,75 con Int diventa 1 che sommata con 1 diventa 2 per cui la page=2.

  5. #5
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    prova a toglierti il dubbio definitivamente stampando a video la variabile numpagine prima del ciclo

  6. #6
    Utente bannato
    Registrato dal
    Sep 2004
    Messaggi
    115
    Ho provato con un response.write (numpagine) ed il valore esce giusto !!!

  7. #7
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    Originariamente inviato da luigggi
    Ho provato con un response.write (numpagine) ed il valore esce giusto !!!

    quindi piu' di 1



    ma se la metematica non è un opignone allora anche "i" deve arrivare a dare di piu' di 1

  8. #8
    Utente bannato
    Registrato dal
    Sep 2004
    Messaggi
    115
    Numpagine è giusto, perchè se ho ad esempio 14 record secondo la divisione per 8 devo avere 2 pagine, giusto....
    ..... per cui numpagine è 2.


    Mi sa che l'errore è nel:
    for i = 1 to numpagine
    oppure durante il ciclo for bisogna rivalutare i con un qualcosa del tipo i=i+1

  9. #9
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    Originariamente inviato da luigggi
    Numpagine è giusto, perchè se ho ad esempio 14 record secondo la divisione per 8 devo avere 2 pagine, giusto....
    ..... per cui numpagine è 2.


    Mi sa che l'errore è nel:
    for i = 1 to numpagine


    ma stai ipotizzando oppure hai appurato che Numpagine è maggiore di 1 ?


    se Numpagine è magiore di 1 il problema si deve cercare altrove, non nel ciclo.

    for i = 1 to numpagine equivale a i=1 --> i=2 --> i=3 non si scappa da li...

  10. #10
    Utente bannato
    Registrato dal
    Sep 2004
    Messaggi
    115
    Si scusa , sto andando un pò in confusione .....
    allora numpagine è magiiore di 1, certo!!!
    se i record sono più di 8 numpagine =2
    se i record sono più di 16 numpagine =3
    ecc..

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.