Visualizzazione risultati 1 fino 9 di 9

Discussione: [php]in paginazione dati per pagina

  1. #1
    Guest

    Predefinito [php]in paginazione dati per pagina

    se siamo alla pagina index.php o index.php?id=1
    mostra solo il numero delle pagine fino a dieci numeri
    poi un pulsante che aumenti il numero della pagina di uno
    ad esempio siamo alla pagina 5 il pulsante porta alla pagina
    index.php?id=6
    e un pulsante che porta al ultimo id della pagina.

    se invece e diversa da index o index.php?id=1
    stampa come sopra o un altro pulsante che porta ad index.php

    mi date una mano a sistemare questo codice
    Codice PHP:
    <?php
    // effettua la connessione al database. e imposta i nomi delle tabelle e i campi.

    $count = mysql_query("SELECT id FROM nome_tabella");
    $tot_records = mysql_num_rows($count);
    $per_page = 3;
    $tot_pages = ceil($tot_records / $per_page);
    $current_page = (!$_GET["pag"]) ? 1 : (int)$_GET["pag"];
    $start = ($current_page - 1) * $per_page;
    $query = mysql_query("SELECT * FROM nome_tabella LIMIT {$start}, {$per_page}");


    $go = $current + 1;
    $back = $current - 1;
    $pagination = null;

    if(
    $tot_pages > 1){
    for(
    $i = 1; $i <= $tot_pages; $i++) {
    $pagination .= "<a href=\"{$_SERVER["PHP_SELF"]}?page={$i}\">{$i}</a>\n";
    }}


    $pagination = trim($pagination);
    if(!empty(
    $pagination)){
    if(
    $current == $tot_pages) {
    $pagination = "<a href=\"{$_SERVER["PHP_SELF"]}?pag={$back}\">&laquo;</a>\n" .$pagination;
    }else if(
    $current == 1) {
    $pagination = $pagination. "\n<a href=\"{$_SERVER["PHP_SELF"]}?pag={$go}\">&raquo;</a>";
    }else{
    $pagination =
    "<a href=\"{$_SERVER["PHP_SELF"]}?pag={$back}\">&laquo;</a>\n"
    .$pagination.
    "\n<a href=\"{$_SERVER["PHP_SELF"]}?pag={$go}\">&raquo;</a>";
    }}

    echo
    $pagination;
    ?>

  2. #2
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    Linki per favore la pagina dove usi questo codice?

    Usi la variabile $current senza averla inizializzata... immagino che $current e $current_page siano la stessa cosa :o

    Io inizializzerei $pagination = "", poi $pagination = trim($pagination) non mi sembra necessario, visto che le stringhe le stai creando tu e non metti spazi nè all'inizio nè alla fine :o

    L'ultima parte del codice la modificherei così:
    Codice PHP:
    if(!empty($pagination)){
    if(
    $current > 1) {
    $pagination = "<a href=\"{$_SERVER["PHP_SELF"]}?pag={$back}\">&laquo;</a>\n" .$pagination;
    }
    if(
    $current < $tot_pages) {
    $pagination = $pagination. "\n<a href=\"{$_SERVER["PHP_SELF"]}?pag={$go}\">&raquo;</a>";
    }}
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  3. #3
    Guest

    Predefinito

    tu dici di fare cosi
    Codice PHP:
    <?php
    // effettua la connessione al database. e imposta i nomi delle tabelle e i campi.

    $count = mysql_query("SELECT id FROM nome_tabella");
    $tot_records = ($count);
    $per_page = 3;
    $tot_pages = ceil($tot_records / $per_page);
    $current = (!$_GET["pag"]) ? 1 : (int)$_GET["pag"];
    $start = ($current - 1) * $per_page;
    $query = mysql_query("SELECT * FROM nome_tabella LIMIT {$start}, {$per_page}");


    $go = $current + 1;
    $back = $current - 1;
    $pagination = "";

    if(
    $tot_pages > 1){
    for(
    $i = 1; $i <= $tot_pages; $i++) {
    $pagination .= "<a href=\"{$_SERVER["PHP_SELF"]}?page={$i}\">{$i}</a>\n";
    }}


    if(!empty(
    $pagination)){
    if(
    $current > 1) {
    $pagination = "<a href=\"{$_SERVER["PHP_SELF"]}?pag={$back}\">&laquo;</a>\n" .$pagination;
    }
    if(
    $current < $tot_pages) {
    $pagination = $pagination. "\n<a href=\"{$_SERVER["PHP_SELF"]}?pag={$go}\">&raquo;</a>";
    }}

    echo
    $pagination;
    ?>
    ^^

  4. #4
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    eh sì... ma lo stai provando online o sono teoricamente? :/
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  5. #5
    Guest

    Predefinito

    lo sto creando in locale sembra funzionare...
    una cosa se io volessi mettere un pulsante che mi porta al ultimo id del numero delle pagine...^^

  6. #6
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Basta indirizzare il link al numero totale delle pagine :D (vedi la variabile $tot_pages)

    Codice PHP:
    echo "<a href=\"{$_SERVER["PHP_SELF"]}?pag={$tot_pages}\">Ultima Pagina</a>";
    Ultima modifica di mycarlo : 09-10-2009 alle ore 19.05.51

  7. #7
    Guest

    Predefinito

    grazie carlo...

    p.s.
    se i mi trovo al ultimo id
    e volessi che
    echo "<a href=\"{$_SERVER["PHP_SELF"]}?pag={$tot_pages}\">Ultima Pagina</a>";
    non comparisse
    come devo fare per impostare un codice un po più pulito...

    Codice PHP:
    $go = $current + 1;
    $back = $current - 1;
    $pagination = "";

    if(
    $tot_pages > 1){
    for(
    $i = 1; $i <= $tot_pages; $i++) {
    $pagination .= "<span class=\"pagina\"><a href=\"{$_SERVER["PHP_SELF"]}?pag={$i}\">{$i}</a></span>\n";
    }}


    if(!empty(
    $pagination)){
    if(
    $current > 1) {
    $pagination = "
    <span class=\"pagina\"><a href=\"
    {$_SERVER["PHP_SELF"]}?pag=1\">Prima Pagina</a></span>
    <span class=\"pagina\">...</span>
    <span class=\"pagina\"><a href=\"
    {$_SERVER["PHP_SELF"]}?pag={$back}\">&laquo;</a></span>\n" .$pagination;
    }
    if(
    $current < $tot_pages) {
    $pagination = $pagination. "\n
    <span class=\"pagina\"><a href=\"
    {$_SERVER["PHP_SELF"]}?pag={$go}\">&raquo;</a></span>
    <span class=\"pagina\">...</span>"
    ;
    }}


    echo
    $pagination. "<span class=\"pagina\"><a href=\"{$_SERVER["PHP_SELF"]}?pag={$tot_pages}\">Ultima Pagina</a></span>";
    ?>
    fino a quanti numeri mi stampa prima di terminare
    Ultima modifica di hotmailpower : 09-10-2009 alle ore 19.27.16

  8. #8
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    facile, lo metti nel blocco dell' if($current < $tot_pages) {
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  9. #9
    Guest

    Predefinito

    ok ho risolto...

    ot.
    sto sistemando la grafica e dovrei fare che ad esempio cliccando ho su
    avanti o indietro o su i numeri

    apre la pagina ad esempio id 5
    e il numero 5
    cambia di classe tipo pagina2

    hai consigli su come impostarlo...xDxD

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •