Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    52

    paginazione record MySQL

    Ciao a tutti,
    il codice per la paginazione di record da MySQL che posto è funzionante, quindi se può servire...

    C'è solo un dubbio che sarei felice mi chiariste.

    Questo è il codice che conta i record e crea le pagine:
    codice:
      $ul ='';
      //max record per pag.
      $record_per_pag = 4;
      
      //di default pagina 1
      $numero_pag = 1;
      
        if(isset($_GET['pagina'])) 
      { 
        $numero_pag = $_GET['pagina']; 
      } 
      
      //offset
      $offset = ($numero_pag - 1) * $record_per_pag;
    
    //conto i record 
    $query_pag   = "SELECT COUNT(*) AS tot_righe FROM $tabella"; 
     $res  = @mysql_query($query_pag) or die(mysql_error()); 
     $righe  = @mysql_fetch_array($res, MYSQL_ASSOC) or die(mysql_error()); 
     $tot_righe = $righe['tot_righe']; 
    
    //pagine da visualizzare
    $pag_vw = ceil($tot_righe/$record_per_pag); 
    
    //paginazione 
    $self = $_SERVER['PHP_SELF'];  
    $nav = ''; 
    for($pagina = 1; $pagina <= $pag_vw; $pagina++) 
    { 
        if ($pagina == $numero_pag) 
        { 
            $nav .= " $pagina ";  
        } 
        else 
        { 
            $nav .= " <a href=\"$self?pagina=$pagina\">$pagina</a> "; 
        }
    	          
    } 
    @include 'nav.php';
     
      //stampa record
        echo "<ul>";
      $query = @mysql_query("SELECT * FROM $tabella 
    ORDER BY id DESC LIMIT $offset, $record_per_pag") or die (mysql_error());
      while($fetch = mysql_fetch_array($query) or die (mysql_error()))
       {
      $dato = stripslashes($fetch['dato']);
      $dato2 = stripslashes($fetch['dato2']);
       echo "[*]".$dato.$dato2."";
       $ul="[/list]";
       }
       
       echo $ul;
    Questa invece è la pagina nav.php per la navigazione:
    codice:
    if ($numero_pag > 1) 
    { 
        $pagina = $numero_pag - 1; 
        $precedente = " <a href=\"$self?pagina=$pagina\">[<<]</a> "; 
         
        $prima = " <a href=\"$self?pagina=1\">[Prima]</a> "; 
    }  
    else 
    { 
        $precedente  = ''; 
        $prima = ''; 
    } 
    
    if ($numero_pag < $pag_vw) 
    { 
        $pagina = $numero_pag + 1; 
        $successiva = " <a href=\"$self?pagina=$pagina\">[>>]</a> "; 
         
        $ultima = " <a href=\"$self?pagina=pag_vw\">[Ultima]</a> "; 
    }  
    else 
    { 
        $successiva = ''; 
        $ultima = ''; 
    } 
    
    echo $prima . $precedente . $nav . $successiva . $ultima;
    Ora, se nel primo file includo il file di navigazione vedo i link alle pagine sopra la lista dei record, ma la vorrei sotto.

    Però se metto l'include (@include 'nav.php'nell'ultima riga del primo file (dopo echo $ul i link alle pagine non si vedono più..

    Grazie 1000 in anticipo

  2. #2
    Metti tutto in una funzione e richiamala sotto e vedi se va!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    52
    Grazie, farò un tentativo seguendo il tuo suggerimento,
    ma hai idea del perchè spostando l'include la paginazione non viene più stampata? Eppure le variabili sono state tutte dichiarate prima..


  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    52
    Capito!!!

    Bisogna mettere un break alla fine del ciclo while e il problema si risolve.

    Grazie 1000
    Comunque!

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.