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

    limitare numero record nella paginazione

    ciao a tutti...ho un problema....ho fatto vari tentativi, ma a vuoto
    ho trovato uno script per la paginazione ottimo per quello che mi serve, solo che non mi riesce a limitare il numero dei record che deve contare...ho provato con la funzione LIMIT ma senza successo
    lo script è questo:
    <?php
    include '../../../paginazione.php';
    $righe_per_pagina = 1;
    $url_base = "cannaregio.php";
    $pagine_vicine = 4;
    // C A L C O L O D E L N U M E R O D I P A G I N E
    //ricavo il numero totale di record
    $query = "SELECT COUNT(*) FROM venezia z, immagini i WHERE z.img_id = i.id";
    $result = mysql_query($query);
    // record complessivi
    $tot_righe = mysql_result($result,0);
    // totale pagine
    $tot_pagine = ceil($tot_righe / $righe_per_pagina);
    // P A G I N A C O R R E N T E
    $pagina_corrente = isset($_GET['page']) ? (int)$_GET['page'] : 1;
    // se la pagina corrente è minore di 1
    if($pagina_corrente < 1) {
    header('location: ' . $url_base);
    exit();
    }
    // se la pagina corrente è maggiore dell'ultima pagina
    if($pagina_corrente > $tot_pagine) {
    header('location: ' . crea_url($url_base, $tot_pagine));
    exit();
    }
    ?>
    ho provato ad aggiungere la funzione Limit per fare contare e visualizzare solo le prime 30 di 60 paginein questo modo:
    $query = "SELECT COUNT(*) FROM venezia z, immagini i WHERE z.img_id = i.id LIMIT 30";
    ma mi visualizza nella paginazione sempre il totale di 60
    poi in questa stessa funzione avevo anche bisogno di fare in modo che il conteeggio cominciasse dalla pagina 31 dfino alla 60 e pensavo di fare così nella query:
    $query = "SELECT COUNT(*) FROM venezia z, immagini i WHERE z.img_id = i.id LIMIT 31, 30";
    ma in questo caso mi dà errore della query
    qui sotto è riportato lo scirpt paginazione della funzione include:

    <?php
    function crea_url($url_base, $pagina) {
    if(strpos($url_base,'?') === false) {
    return $url_base . '?page=' . $pagina;
    } else {
    return $url_base . '&amp;amp;page=' . $pagina;
    }
    }

    function crea_link($url_base, $pagina_corrente, $numero_pagina) {
    if($pagina_corrente == $numero_pagina) {
    return "[$numero_pagina]";
    } else {
    return '' . $numero_pagina . '';
    }
    }

    // funzione che crea i link alle pagine dei risultati
    function paginazione($tot_pagine, $url_base, $pagina_corrente, $pagine_vicine) {
    $link_paginazione = "Pagine: ";

    // link alla pagina precedente
    if($pagina_corrente != 1) {
    $link_paginazione .= '&laquo; ';
    }

    // mostriamo sempre il link alla prima pagina
    $link_paginazione .= crea_link($url_base, $pagina_corrente, 1);

    // se il prossimo link non è alla seconda pagina aggiungo dei puntini ...
    // oppure la sola pagina mancante
    if($pagina_corrente - $pagine_vicine > 2) {
    if($pagina_corrente - $pagine_vicine == 3) {
    $link_paginazione .= " " . crea_link($url_base, $pagina_corrente, 2);
    } else {
    $link_paginazione .= " ... ";
    }
    }

    // creo i link alla pagina corrente ed a quelle ad essa vicine
    for($i = $pagina_corrente - $pagine_vicine; $i <= $pagina_corrente + $pagine_vicine; $i++) {
    // se tra quelle vicine c'è la prima pagina (già riportata)
    if($i < 2) continue;

    // se tra quelle vicine c'è l'ultima pagina (che mostrerò con le prossime istruzioni)
    if($i > $tot_pagine - 1) continue;

    $link_paginazione .= " " . crea_link($url_base, $pagina_corrente, $i);
    }

    // se il precedente link non era alla penultima pagina aggiungo dei puntini ...
    // oppure la sola pagina mancante
    if($pagina_corrente + $pagine_vicine < $tot_pagine - 1) {
    if($pagina_corrente + $pagine_vicine == $tot_pagine - 2) {
    $link_paginazione .= " " . crea_link($url_base, $pagina_corrente, $tot_pagine - 1) . " ";
    } else {
    $link_paginazione .= " ... ";
    }
    }

    // mostriamo il link all'ultima pagina se questa non coincide con la prima
    if($tot_pagine != 1) {
    $link_paginazione .= " " . crea_link($url_base, $pagina_corrente, $tot_pagine);
    }

    // link alla pagina successiva
    if($pagina_corrente != $tot_pagine) {
    $link_paginazione .= ' &raquo;';
    }

    return $link_paginazione;
    }

    ?>

    come posso risolvere????
    Grazie per tutto l'aiuto...

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    cosa intendi quando dici limitare i record????? O è sbagliato il filtro della query (quindi la condizione WHERE della query) oppure vuoi meno record per pagina?????? non si capisce

    per quanto riguarda cominciare dalla pagina 31 devi modificare questa riga
    Codice PHP:
    $pagina_corrente = isset($_GET['page']) ? (int)$_GET['page'] : 1
    e mettere
    Codice PHP:
    $pagina_corrente = isset($_GET['page']) ? (int)$_GET['page'] : 31
    e ricordati di mettere i tag code oppure i tag php che il codice se no è illeggibile

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Leggi questa guida, chiara, semplice e completa.
    Io la paginazione l'ho imparata da lì.

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.