Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [PHP]Scorrimento record... troppe pagine

    Ciao a tutti, io ho il seguente codice per scorrere i record:

    Codice PHP:
    function getPagerData($numHits$limit$page) { 
        
    $numHits = (int) $numHits;             //
        
    $limit max((int) $limit1);         //convalidano la funzione di input: evitano divisioni per 0
        
    $page = (int) $page;                 //
        
    $numPages ceil ($numHits $limit); //calcola il numero delle pagine
        
        
    $page max($page1);                 //se il numero delle pagina è minore a 1, lo imposta come "1"
        
    $page min($page$numPages);         //se il numero della pagina è maggiore del numero totale delle pagine, lo imposta sull'ultimo numero disponibile delle pagine
        
        
    $offset = ($page 1) * $limit;     //calcola l'offset
        
        
    $ret = new stdClass;                 //
                                            //
        
    $ret->offset $offset;             //
        
    $ret->limit $limit;                //sviluppa un piccolo oggetto di ritorno 
        
    $ret->numPages $numPages;         //
        
    $ret->page $page;                 //
                                            //
        
    return $ret


    // get the pager input values
    $page $_GET['page']; 
    $limit 7;
    $sql_c "SELECT ID_RISP FROM BACHECHE_RISPOSTE WHERE TOPIC_RISP = $ID_TOPIC";
    $result mysql_query($sql_c,$connessione);
    $total mysql_num_rows($result);
    if (
    $total == 0$total 1;

    // work out the pager values 
    $pager getPagerData($total$limit$page); 
    $offset $pager->offset
    $limit $pager->limit
    $page $pager->page;

    // output del sistema di impaginazione 
    if ($page == or $offset 0){ // this is the first page - there is no previous page 
        
    echo "<< | "
    }
    else{ 
    // not the first page, link to the previous page 
        
    echo "<a href=\"$_SERVER[PHP_SELF]?page=" . ($page 1) . "&id_topic=$ID_TOPIC\" class='notstandard'><<</a> | ";
    }
    for (
    $i 1$i <= $pager->numPages$i++) { 
     
        if (
    $i == $pager->page){ // pagina attuale
            
    echo "$i"
        }
        else{
            echo 
    "<a href=\"$_SERVER[PHP_SELF]?page=$i&id_topic=$ID_TOPIC\" class='notstandard'>$i</a>"
        }
        echo 
    " | ";
    }

    if (
    $page == $pager->numPages){ // this is the last page - there is no next page 
        
    echo ">>"
    }
    else{ 
    // not the last page, link to the next page 
        
    echo "<a href=\"$_SERVER[PHP_SELF]?page=" . ($page 1) . "&id_topic=$ID_TOPIC\" class='notstandard'>>></a>"

    ok, ora però se ho troppe pagine mi viene una lista infinita di numeri...
    quale potrebbe essere il codice più adatto per far uscire una cosa del tipo
    codice:
    << | 1 | 2 | ... | 7 | ... | 34 | 35 | >>
    [dove 7 è la pagina che stiamo vedendo in questo momento]
    ?????

    Spero in un aiuto.
    Grazie in anticipo ^_^
    Flash Developer for Rich Media
    PHP, jQuery Developer

  2. #2
    up

    please >_<
    Flash Developer for Rich Media
    PHP, jQuery Developer

  3. #3
    Codice PHP:
    ... ...
    for (
    $i 1$i <= $pager->numPages$i++) {

        if (
    $i == $pager->page){ // pagina attuale
            
    echo "$i";
        }
        else{
            if ( (
    $i 3) || ($i >= ($pager->numPages 2) ) ) {
                    echo 
    "<a href=\"$_SERVER[PHP_SELF]?page=$i&id_topic=$ID_TOPIC\" class='notstandard'>$i</a> |";
            }
            else if (
    $i $pager->page) {
                    
    $i $pager-page -1;
                    echo 
    " | ... | ";
            }
            else if (
    $i $pager->page) {
                    
    $i $pager->numPages 3;
                    echo 
    " | ... | ";
            }
        }
        echo 
    " | ";
    }
    ... ... 
    Spero di esserci riuscito ...
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  4. #4
    SCUSATE L'INTRUSIONE

    Avendo il tuo stesso problema ho provato il codice che hai postato ma non funziona a me sai dirmi dive sbaglio????


    ecco il mio codice:

    Codice PHP:

    <?php
    include("../Marinaservice/condb.php");
    function 
    getPagerData($numHits$limit$page) {
        
    $numHits = (int) $numHits;             //
        
    $limit max((int) $limit1);         //convalidano la funzione di input: evitano divisioni per 0
        
    $page = (int) $page;                 //
        
    $numPages ceil ($numHits $limit); //calcola il numero delle pagine
        
        
    $page max($page1);                 //se il numero delle pagina è minore a 1, lo imposta come "1"
        
    $page min($page$numPages);         //se il numero della pagina è maggiore del numero totale delle pagine, lo imposta sull'ultimo numero disponibile delle pagine
        
        
    $offset = ($page 1) * $limit;     //calcola l'offset
        
        
    $ret = new stdClass;                 //
                                            //
        
    $ret->offset $offset;             //
        
    $ret->limit $limit;                //sviluppa un piccolo oggetto di ritorno
        
    $ret->numPages $numPages;         //
        
    $ret->page $page;                 //
                                            //
        
    return $ret;
    }

    // get the pager input values
    $page $_GET['page'];
    $limit =2;
    $query"SELECT  * FROM barche"
    $select=mysql_query($query) or die("Query fallita");
    $NumRow mysql_num_rows($select);

    if (
    $NumRow == 0$NumRow 1;



    echo 
    "
            [url='ModificaCat.php?cod=Admin&idUtente="
    .$id."'] MODIFICA CATEGORIE [/url]
                <table border='1' cellspacing='3'>
                  <caption align='top'>
                    Elenco Barche
                  </caption>
                  <tr>
                    <th scope='col'>Stato</th>
                    <th scope='col'>Modello</th>
                    <th scope='col'>Foto1</th>
                    <th scope='col'>Zoom1</th>
                    <th scope='col'>Foto2</th>
                    <th scope='col'>Zoom2</th>
                    <th scope='col'>Foto3</th>
                    <th scope='col'>Zoom3</th>
                    <th scope='col'>Prezzo</th>
                    <th scope='col'>Descrizione</th>
                    <th scope='col'>Categoria</th>
                    <th scope='col'></th>
                    <th scope='col'></th>
                  </tr>
            
            "
    ;
            
            while(
    $row mysql_fetch_array($select))
                {
                    echo 
    "
                    
                            <tr>
                            <td>"
    .$row['stato']."</td>
                            <td>"
    .$row['modello']."</td>
                            <td>[img]"
    .$row[[/img]</td>
                            <
    td>[img]".$row[[/img]</td>
                            <td>[img]"
    .$row[[/img]</td>
                            <
    td>[img]".$row[[/img]</td>
                            <td>[img]"
    .$row[[/img]</td>
                            <
    td>[img]".$row[[/img]</td>
                            <td>"
    .$row['prezzo']."</td>
                            <td>"
    .$row['descrizione']."</td>
                            <td>"
    .$row['categoria']."</td>
                            <td>[url='ModificaBarca.php?cod=Admin&idUtente="
    .$id."&idBarche=".$row[']MODIFICA[/url]</td>
                            <td>[url='
    sql.php?cod=Admin&fare=cancella_barca&idBarca=".$row[']CANCELLA[/url]</td>
                          </tr>                    
                            "
    ;
                }
                echo
    "</table>";



    // work out the pager values
    $pager getPagerData($NumRow$limit$page);
    $offset $pager->offset;
    $limit $pager->limit;
    $page $pager->page;

    // output del sistema di impaginazione
    if ($page == or $offset 0){ // this is the first page - there is no previous page
        
    echo "<< | ";
    }
    else{ 
    // not the first page, link to the previous page
        
    echo "<a href=\"$_SERVER[PHP_SELF]?page=" . ($page 1) . "&id_topic=$ID_TOPIC\" class='notstandard'><<</a> | ";
    }
    for (
    $i 1$i <= $pager->numPages$i++) {

        if (
    $i == $pager->page){ // pagina attuale
            
    echo "$i";
        }
        else{
            echo 
    "<a href=\"$_SERVER[PHP_SELF]?page=$i&id_topic=$ID_TOPIC\" class='notstandard'>$i</a>";
        }
        echo 
    " | ";
    }

    if (
    $page == $pager->numPages){ // this is the last page - there is no next page
        
    echo ">>";
    }
    else{ 
    // not the last page, link to the next page
        
    echo "<a href=\"$_SERVER[PHP_SELF]?page=" . ($page 1) . "&id_topic=$ID_TOPIC\" class='notstandard'>>></a>";
    }
    ?>
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  5. #5
    ehilà homezappa, grandioso, funziona benissimo!

    Un piccolo dettaglio che potrebbe anche essere evitato, quando sono sull'ultima pagina non viene visualizzata la penultima dopo i tre puntini... è possibile fare in modo che accada?

    Barman, per quello che vedo è tutto giusto, tranne
    Codice PHP:
    if ($NumRow == 0$NumRow 1
    che a te non serve, io l'avevo messo per risolvere un problema del mio codice.

    Spero che rimuovendo qll funzioni ^_^
    Flash Developer for Rich Media
    PHP, jQuery Developer

  6. #6
    non funzione nel senso che i risultati me li fa vedere tutti in prima pagina e poi sotto mi creare le pagine in base al limit ma non divide i risultati.

    tutte le pagine dei link sono uguali è tutte fanno vedere l'intero risultato della query creandomi una tabella enorme e lunghissima
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  7. #7
    aaaaaaaaaaaah capito!

    Beh perké per richiamare i dati non devi utilizzare la query che usi per sapere quanti record ci sono nella tabella, ma devi creare un'altra query e mettere come limite
    codice:
    LIMIT $offset, $limit
    ;D
    Flash Developer for Rich Media
    PHP, jQuery Developer

  8. #8
    si ma non mi prende offset

    vedi:

    Codice PHP:


    // get the pager input values
    $page $_GET['page'];
    $limit =2;
    $query"SELECT  * FROM barche"
    $select=mysql_query($query) or die("Query fallita "mysql_error());
    $NumRow mysql_num_rows($select);

    $query1"SELECT  * FROM barche LIMIT $offset$limit "
    $select1=mysql_query($query1) or die("Query fallita2 "mysql_error().
    "
    $query1);

    /* il risultato che esce a video è 
    Query fallita2 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 2' at line 1
    SELECT * FROM barche LIMIT , 2 */ 
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  9. #9
    Ehm... perké così non hai nessuna variabile $offset...
    ti sei dimenticato di mettere
    Codice PHP:
    // work out the pager values 
    $pager getPagerData($NumRow$limit$page); 
    $offset $pager->offset
    $limit $pager->limit
    $page $pager->page
    prima della query
    Flash Developer for Rich Media
    PHP, jQuery Developer

  10. #10
    GRAZIE FUNONZIA FUNOZIAAAAAAAAAAAA

    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

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.