Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118

    Eliminare link a pagina attiva in paginazione

    Ciao a tutti, non riesco a fare in modo nella seguente paginazione che la pagina attiva non sia linkata

    codice:
    <?php 
    
    $DBhost = "localhost"; 
    $DBuser = "root"; 
    $DBpass = ""; 
    $DBName = "mytest"; 
    
    /* specifichiamo il nome della nostra tabella */ 
    $table02 = "scheda"; 
    
    
    /* Connettiamoci al database */ 
    mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server"); 
    @mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");  
    
    
    //# of posts to display per page 
    $display = 5;  
      
    //adds your page (if any) between like so '?{$uri}page=#' 
    $uri = "p=blog&"; 
      
    //Get current page 
    $page = (!empty($_GET['page'])) ? $_GET['page'] : '0';  
      
    //Find post to start on, depending on page 
    $start = ($page == 0) ? $start = 0 : $start = (($page-1)*$display); 
      
    //Print content & count number printed 
    $query = "SELECT * FROM $table02 LIMIT {$start},{$display}"; 
    $result = mysql_query($query) or die(mysql_error()); 
    $displayed = 0; 
    while($row = mysql_fetch_array($result)) { 
        $id = $row['id']; 
        $displayed++; 
    }  
    ?> 
    
      
    <div><?php echo "$id\n"; ?></div> 
    
    
    <?php 
    
    //Get number of total posts 
    $count = mysql_query("SELECT id FROM $table02"); 
    $rows = mysql_num_rows($count); 
      
    //Get number of total pages 
    $pages = ceil($rows/$display); 
      
    //Make next/prev links 
    $next = $page+1; 
    $prev = $page-1; 
      
    //Unlink if next/prev doesn't exsist 
    $prevpage = ($prev == 0 || $prev == -1) ?  
    "&lt;&lt; Prev" : "&lt;&lt; Prev"; 
    $nextpage = ($next < $pages+1) ?  
    "Next &gt;&gt;" : "Next &gt;&gt;"; 
      
    //Get showing from-to numbers 
    $from = $start; 
    $from = ($from == 0) ? 1 : $from+1; 
    $to = $start+$displayed; 
      
    //Print individual page number links 
    echo "{$prevpage}  ["; 
    $i = 1; 
    while($i != $pages+1) { 
        //Print pages & add coma to all but last page      
        echo "{$i}"; 
        if($i != $pages) {echo ", ";} 
        $i = $i+1; 
    } 
    echo "]  {$nextpage}"; 
    ?>
    cioé se sono nella pagina 2 ad esempio dovrebbe uscire cosi: << Prev 1 , 2, 3 Next >>

    invece anche la pagina 2 rimane linkata 2

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    E se nel ciclo while finale metti un if ($i != $corrente) stampa il link e come else non stampare il link?
    Se ho interpretato bene $start è la variabile da cui inizi il limit, quindi $corrente la puoi calcolare a partire da $start

    Sperando di non aver detto una boiata

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    non ho idea di come farlo

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Assolutamente non testato, provalo e vedi se va e cosa restituisce.
    Magari si può fare qualcosa di meglio, al momento altro non mi viene
    Codice PHP:
    //Print individual page number links 
    echo "{$prevpage}   ["
    $i 1

    $pagina = (!empty($_GET['page'])) ? $_GET['page'] : '0'//variabile che recupera il numero della pagina (è uguale a come tu definisci $page)

    while($i != $pages+1) {

    if (
    $i != $pagina//controlla che il numero di pagina sia diverso da $i

        
    //Print pages & add coma to all but last page      
        
    echo "[url='?{$uri}page={$i}']{$i}[/url]"
        if(
    $i != $pages) {echo ", ";} 
        
    $i $i+1

    else { 
    //se è uguale a $i omette il link
    echo $i
        if(
    $i != $pages) {echo ", ";} 
        
    $i $i+1
    }
    }
    echo 
    "]   {$nextpage}"
    ?> 

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    PERFETTO clasku, grazie...funziona... ho però settato

    codice:
    $pagina = (!empty($_GET['page'])) ? $_GET['page'] : '1'; //variabile che recupera il numero della pagina (è uguale a come tu definisci $page)
    = 1 e non 0 altrimenti linka anche la prima pagina.

    Se non dovesse trovare dati cosa succede nello script?

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Originariamente inviato da lorymacri
    Se non dovesse trovare dati cosa succede nello script?
    Non ho capito, quali dati non dovrebbe trovare? Se inizia quel ciclo i dati ci dovrebbero essere...
    Oppure ti riferisci al caso in cui la query non restituisca alcun risultato? Se fosse quest'ultima puoi mettere un controllo dopo la query, tipo mysql_num_rows() != 0

    Giusto una cosa... passi il numero della pagina come GET, quindi un utente potrebbe mettere il numero che vuole nella barra degli indirizzi e saltare direttamente a quella pagina. Se la cosa non ti disturba lascialo così, altrimenti usa altri metodi (tipo le Sessioni)

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.