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

    Script per la navigazione di fondo pagina (tipo google)

    Ciao a tutti,
    mi servirebbe uno script che mi permetta di realizzare una navigazione di fondo pagina tipo quella che utilizza google nelle sue pagine di ricerca, ovverro:

    <<pagina precedente - 1 - 2 - 3 - 4 - 5 - pagina successicva>>

    tempo fa realizzai qualcosa di simile ma vorrei avere dei consigli da voi (più esperti di me) in merito. Esiste qualcosa di già pronto? Anche solo per prendere spunto.

  2. #2
    Nessun Consiglio?

  3. #3

  4. #4
    In Italiano non c'è nulla???
    Sai io e l'inglese non andiamo molto daccordo,.....

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Esempio banale
    Mettiamo che ho una tabella di questo tipo
    Tabella1
    id descrizione

    Voglio che appaiano 10 record in ogni pagina
    Codice PHP:
    <?php
    // Valori di base
    $righePerPagina 10;
    $paginaAttuale 1;

    // Verifica che l'utente abbia cliccato sui link in basso
    if(isset($_GET["pagina"]))
        
    $paginaAttuale $_GET["pagina"];
    $rigaDiPartenza ceil($pagina-1)*$righePerPagina;

    // Conteggio righe totali
    $sqlConta "SELECT count(*) as conta FROM Tabella1";
    $resultSet mysql_query($sqlConta);
    $row mysql_fetch_assoc($resultSet);
    $righeTotali $row["conta"];
    $numeroPagineTotali ceil($righeTotali/$righePerPagina);

    // Selezione ed emissione dei record
    $sql "SELECT * FROM Tabella1 LIMIT ($rigaDiPartenza$righePerPagina)";
    $resultSet mysql_query($sql);
    while(
    $row mysql_fetch_assoc($resultSet))
        echo 
    "id=".$row["id"]." - descrizione=".$row["descrizione"] . "
    "
    ;

    // Emissione dei link per pagina
    for($pag=1$pag<=$numeroPagineTotali$pag++)
    {
        if(
    $pag!=$paginaAttuale)
            echo 
    "[url='".$_SERVER["PHP_SELF"]."pagina=".$pag."']$pag[/url] ";
        else 
            echo 
    "[b]$pag [/b]";
    }
    ?>
    Una cosa del genere

  6. #6
    Ciao e grazie a tutti per i consigli!

    Io ho sempre utilizzato uno scrip prelevato da una guida su freephp. Lo script è questo:

    Codice PHP:
     <?php 
    // Parte relativa alla connessione al DB
            
        
    include("config.php");
                
        
    $db mysql_connect($db_host$db_user$db_password);
        if (
    $db == FALSE)
        die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
        
    mysql_select_db($db_name$db)
        or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
        if (!isset(
    $start) OR $start<0)

    // Imposto il numero di query da estrarre
    $start=0;
    $step =10;

    // Query per l'estrazione dei dati da Db    
    $query "SELECT *  From tabella_sql LIMIT $start,$step"
    $result mysql_query($query$db); 
    while (
    $row mysql_fetch_array($result))
    {
    echo
    "$row[risultato]";    
    }
    // coteggio dei record presenti nella tabella_sql
    $query"SELECT count(*) AS tot FROM tabella_sql ";
    $result mysql_query($query$db);
    $row mysql_fetch_array($result);
    $pages intval(($row[tot]-1) / $step)+1;

    // Costruisco il link: Indietro
    if ($start>0)

    $start_back $start $step;
    echo 
    "[url="show.php?start=$start_back"]Indietro[/url]";
    }

    // Costruisco il link: 1 -2 -3 -4.....
    for ($i=0$i<$pages AND $i<20$i++)

    $start_page $i $step;
    echo 
    "<a href=show.php?start=$start_page>" . ($i+1) . "</a> ";
    }

    // Costruisco il link: AVANTI
    if ($start $step <$row[tot])

    $start_next $start $step;
    echo 
    "<a href=show.php?start=$start_next>Avanti</a>";
    }
    Questo script ha sempre funzionato, ma mi sono accorto che ha dei limiti....

    Per quanto riguarda la porzione di codice relativa ai LINK AVANTI e INDIETRO, tutto funziona perfetta,mente, mentre qualche problema ho con la porzione di codice che costruisce i numeri delle pagine, ovvero: 1 - 2 - 3 - 4 - 5 - ....
    Codice PHP:
    // Costruisco il link: 1 -2 -3 -4.....
    for ($i=0$i<$pages AND $i<20$i++)

    $start_page $i $step;
    echo 
    "<a href=show.php?start=$start_page>" . ($i+1) . "</a> ";

    Essensialmente ci sono due problemi (almeno quelli che ho notato io):

    1) Se la tabella_sql contiene un numero elevato di record, loscript stampa un numero elevato di pagine, ovvero tutte quelle che ci sono!
    Più precisamente a me piacerebbe che esso si fermasse ad un max di 10, cioè così:
    codice:
    1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10
    naturalmente mi piacerebbe che se si va alla pagina 3, ad esempio, si incrementasse:
    codice:
     3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13
    2) ho notato che lo script si ferma ad un max di 20 pagine e se ci sono più pagine non vengono stampate i numeri.

    Potete darmi una mano a sistemare questo di script? preferire utilizzare questo perchè bene o male (viste le mie poche conoscenze di php) lo conosco già e so come utilizzarlo....., ma mi piacerebbe effettuare le modifiche sopra descritte.

    Qualche suggerimento per piacere?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.