Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323

    Risultato query diviso per pagine

    Ciao ragazzi, questo è un argomento ben noto, voglio però ottimizzare lo script che uso per dividere il risultato di una query in pagine.
    Ecco il mio codice:
    Codice PHP:
    connect();
    $contaRecord mysql_query("SELECT count(*) AS tot FROM news WHERE active = '1'");
    $record         mysql_fetch_array($contaRecord);
    $righe           10;
    $pagine         ceil($record['tot'] / $righe);

    if(!isset(
    $_GET['p']) || $_GET['p'] < 1)
        
    $_GET['p'] = 1;
    else
        if(isset(
    $_GET['p']) && $_GET['p'] > $pagine)
            
    $_GET['p'] = $pagine;
    $p $_GET['p'];

    $result selectNews($idNews$p$righe1);  //mia funzione di SELECT su DB

    //qui in mezzo stampo le news

    for($i 1$i <= $pagine$i ++)
        {
            echo
    "<a href=\"./?page=News&p=$i\">";
            if(
    $p == $i)
                echo
    "<font size=\"4\">[b]$i[/b]</font>";
            else
                echo
    "$i";
            echo
    "</a>";
            if(
    $i $pagine)
                echo
    " - ";
        } 
    Tutto funziona correttamente e il risultato che ottengo è questo:
    codice:
    1 - [2] - 3
    se fossi sulla pagina 2
    il problema è che se io avessi 1000 pagine uscirebbero tutti i numeri da 1 a 1000 il che diventerebbe poco bello e poco efficiente. Vorrei quindi ottenere un risultato di questo tipo:
    codice:
    [1] - 2 - 3 - ... - 20
    se fossi sulla pagina 1
    codice:
    1  - ... - [18] - 19 - 20
    se fossi sulla pagina 18
    Se conoscete qualche script dal quale possa prendere spunto ve ne sarei molto grato.
    Saluti.
    "Se non riuscirò a piegare gli dei del cielo, smuoverò le potenze dell'inferno"
    S. Freud

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sapendo il numero totale di pagine e il numero della pagina corrente risolvi con qualche semplice if.

    Ad esempio: 1 e il numero dell'ultima pagina li scrivi sempre, poi prendi il numero della pagina corrente e stampi pagina_corrente-2, pagina_corrente-1, pagina_corrente, pagina_corrente+1 e pagina_corrente+2

    gli if ti servono in pratica solo per verificare se sei sulla prima, sulla seconda, sulla terza, sulla terzultima, sulla penultima o sull'ultima pagina, perché altrimenti ti sforano gli indici o stampi 2 volte gli estremi.

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.