impaginazione in php

Discussione in 'PHP' iniziata da ONE313, 6 Settembre 2017.

  1. ONE313

    ONE313 Nuovo Utente

    Registrato:
    10 Settembre 2016
    Messaggi:
    14
    Mi Piace Ricevuti:
    1
    Punteggio:
    3
    Ciao ho scaricato uno script, in php per la gestione della impaginazione di immagini, il problema che trovo è dato che mi fa vedere la maggior parte di esse e mi tralascia alcune. Es. nella cartella foto ho 115 img ma me ne mostra solo 100, ho impostato 20 per pagina per esigenza per un totale di 5 pagine
    il codice è :
    Codice:
    <?php
    
    $folder = 'foto/';
    $filetype = '*.*';
    $files = glob($folder.$filetype);
    $total = count($files);
    $per_page = 20;
    $last_page = (int)($total / $per_page);
    if(isset($_GET["page"])  && ($_GET["page"] <=$last_page) && ($_GET["page"] > 0) ){
        $page = $_GET["page"];
        $offset = ($per_page + 1)*($page - 1);
    }else{
        echo "Page out of range showing results for page one";
        $page=1;
        $offset=0;
    }
    $max = $offset + $per_page;
    if($max>$total){
        $max = $total;
    }
       //print_r($files);
    
        show_pagination($page, $last_page);
        for($i = $offset; $i< $max; $i++){
            $file = $files[$i];
            $path_parts = pathinfo($file);
            $filename = $path_parts['filename'];
            echo '
    
    <li><a href="foto.php?res'.filename.'&ext=jpg"><img src="'.$file.'" alt="'.$filename.'" width="80px" height="60px"></a><span>'.$filename.'</span></li>
            ';
        }
    
        function show_pagination($current_page, $last_page){
        echo '<div>';
        if( $current_page > 1 ){
            echo ' <a href="?page='.($current_page-1).'"> &lt;&lt;Previous </a> ';
        }
        if( $current_page < $last_page ){
            echo ' <a href="?page='.($current_page+1).'"> Next&gt;&gt; </a> ';
        }
        echo '</div>';
    }
    
    ?>
    
     
    Ultima modifica: 6 Settembre 2017
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.756
    Mi Piace Ricevuti:
    67
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    la mia sensazione è che gli indici di controllo "vadano a spasso", (magari anche i miei)
    se non hai risolto, prova così
    PHP:
    <?php
    $folder     
    'E:/temp/';
    $filetype   '*.*';

    $scan_for   $folder.$filetype;
    $files      glob($scan_for);
    $total      count($files) - 1;

    $per_page   20;
    $last_page  intval($total $per_page);
    $last_page += ( $total $per_page $last_page == );

    if(isset(
    $_GET["page"])  && ($_GET["page"] <= $last_page) && ($_GET["page"] > 0) ) { $page $_GET["page"]; }
    else                                                                               { 
    $page 1; }

    $offset = ($page 1) * $per_page;

    $max $offset $per_page 1;
    if(
    $max $total) { $max $total; }

    /*
    echo "<br />"
       . "<table>"
       . "<tr><td>folder : </td><td>".$folder."</td></tr>"
       . "<tr><td>filetype : </td><td>".$filetype."</td></tr>"
       . "<tr><td>scan_for : </td><td>".$scan_for."</td></tr>"
       . "<tr><td>total : </td><td>".$total."</td></tr>"
       . "<tr><td>per_page : </td><td>".$per_page."</td></tr>"
       . "<tr><td>last_page : </td><td>".$last_page."</td></tr>"
       . "<tr><td>page : </td><td>".$page."</td></tr>"
       . "<tr><td>offset : </td><td>".$offset."</td></tr>"
       . "<tr><td>max : </td><td>".$max."</td></tr>"
       . "</table>"
       . "<br />";

    print_r($files);
    */

    echo "<br /><br />";
    show_pagination($page$last_page);
    echo 
    "<br /><br />";

    for(
    $i $offset$i <= $max$i++)
    {
        
    $file $files[$i];
        
    $path_parts pathinfo($file);
        
    $filename $path_parts['filename'];
        echo
    '
    <li>
    '
    .
    $i.
    '
    <a href="foto.php?res'
    .filename.'&ext=jpg"><img src="'.$file.'" alt="'.$filename.'" width="80px" height="60px"></a>
    <span>'
    .$filename.'</span>
    </li>
    '
    ;
    }

    function 
    show_pagination($current_page$last_page)
    {
        echo 
    '<div>';
        if( 
    $current_page )
        {
            echo 
    ' <a href="?page='.($current_page 1).'"> &lt;&lt;Previous </a>&nbsp;&nbsp;&nbsp;&nbsp;';
        }
        if( 
    $current_page $last_page )
        {
            echo 
    ' <a href="?page='.($current_page 1).'"> Next&gt;&gt; </a> ';
        }
        echo 
    '</div>';
    }
    ?>
     
  3. ONE313

    ONE313 Nuovo Utente

    Registrato:
    10 Settembre 2016
    Messaggi:
    14
    Mi Piace Ricevuti:
    1
    Punteggio:
    3
    Grazie, ho provato come hai detto te e ora funziona correttamente.
     
Sto caricando...

Condividi questa Pagina