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

    Visualizzare o no ultima riga di una query con paginazione

    Ciao a tutti !!

    Ho un problemino a cui non riesco a venire a capo.

    Utilizzo un sistema di paginazione (l'avevo presa da una pillola proprio qui...:-P) abbastanza semplice e che non mi ha mai dato nessun problema, fino ad oggi...

    In pratica, ho una pagina dove visualizzo una lista di record:

    Codice PHP:

    // RECORD PER PAGINA
    $recordxpag 9;
    $query "SELECT * FROM serate WHERE attiva = 1 ORDER BY data_serata DESC";

    //INTERROGAZIONE DEL DATABASE:
    $res mysql_query($query);   
    $righe mysql_num_rows($res);
    $conteggia 1;

    $numpag ceil($righe/$recordxpag);

    if (
    $righe 1) { 

        echo 
    "nessuno risultato...";

    } else {

        
    $da = (($pag-1) * $recordxpag);                    
                                                             
        
    $a $da $recordxpag;                            
                                                             
        if (
    $a $righe){$a=$righe;}                       
                                   
            for (
    $i $da$i $a$i++) {                             
        
            
    $idmysql_result($res,$i,'id');
            
            echo 
    "QUESTO E' IL NUMERO RECORD: $id";    
            echo 
    "<hr>";


    Mi piacerebbe che l'ultimo record non visualizzasse la riga, allora provo a fare cosi', aggiungendo un if:

    Codice PHP:

    // RECORD PER PAGINA
    $recordxpag 9;
    $query "SELECT * FROM serate WHERE attiva = 1 ORDER BY data_serata DESC";

    //INTERROGAZIONE DEL DATABASE:
    $res mysql_query($query);   
    $righe mysql_num_rows($res);
    $conteggia 1;

    $numpag ceil($righe/$recordxpag);

    if (
    $righe 1) { 

        echo 
    "nessuno risultato...";

    } else {

        
    $da = (($pag-1) * $recordxpag);                    
                                                             
        
    $a $da $recordxpag;                            
                                                             
        if (
    $a $righe){$a=$righe;}                       
                                   
            for (
    $i $da$i $a$i++) {                             
        
            
    $idmysql_result($res,$i,'id');
            
            echo 
    "QUESTO E' IL NUMERO RECORD: $id";    

            
    // SPAZIO TRA UNA RIGA E L'ALTRA            
            
    if($righe != $conteggia) {
            
                echo 
    "<hr>";
                
            }

            
    $conteggia++;



    Perche' diavolo non ne vuole sapere di funzionare ? :-)

    Nel frattempo, grazie a tutti per l'attenzione.

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    incrementa prima di controllare
    Codice PHP:
    $conteggia++; 
    if(
    $righe != $conteggia) { 
             
                echo 
    "<hr>"
                 
            } 

  3. #3
    No, non funziona nemmeno cosi'.

    Il fatto e' che, essendo il risultato della query il totale pero' poi viene suddiviso nelle varie pagine, per esempio, i risultati sono 9 per pagina, ma la query mi torna 15 risultati, cosi', mi visualizza la prima pagina (i primi 9) e in effetti l'ultimo record non ha la riga (hr) pero', nella seconda pagna l'ultimo record visualizza (erratamente) la riga.


  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    ma l'ultimo record oppure per tutti gli ultimi record in fondo alla pagina???

  5. #5
    Scusa, in effetti non mi sono spiegato bene.

    Mettiamo che ho 13 record, e voglio visualizzare 9 (la variabile $recordxpag mi permette di scegliere quanti per pagina) per ogni pagina:

    Pagina 1:

    1
    --------
    2
    --------
    3
    --------
    4
    --------
    5
    --------
    6
    --------
    7
    --------
    8
    --------
    9 (ultimo record, nessuna riga finale)


    Pagina 2:

    1
    --------
    2
    --------
    3
    --------
    4 (ultimo record, nessuna riga finale)



    Vorrei ottenere una cosa cosi', ma mi sa che continuero' domani perche' ho gli occhi sulla tastiera !!

    Ciao, grazie per l'interessamento

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    allora prova così
    Codice PHP:
    // RECORD PER PAGINA 
    $recordxpag 9
    $query "SELECT * FROM serate WHERE attiva = 1 ORDER BY data_serata DESC"

    //INTERROGAZIONE DEL DATABASE: 
    $res mysql_query($query);    
    $righe mysql_num_rows($res); 

    $numpag ceil($righe/$recordxpag); 

    if (
    $righe 1) {  

        echo 
    "nessuno risultato..."

    } else { 

        
    $da = (($pag-1) * $recordxpag);                     
                                                              
        
    $a $da $recordxpag;                             
                                                              
        if (
    $a $righe){$a=$righe;}                        
                                    
            for (
    $i $da$i $a$i++) {                              
         
            
    $idmysql_result($res,$i,'id'); 
             
            echo 
    "QUESTO E' IL NUMERO RECORD: $id";     

            
    // SPAZIO TRA UNA RIGA E L'ALTRA             
            
    if($i != $a-1) { 
             
                echo 
    "<hr>"
                 
            } 



  7. #7
    Che dire......Funziona perfettamente !! ;-)

    Piccola spiegazione ??



    Grazie 1000

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    non stampare <hr> all'ultima iterazione del ciclo for
    for ($i = $da; $i < $a; $i++)
    e all'ultima iterazione $i sarà uguale ad $a-1

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.