Ripetizione dell'elemento | Pagination

Lollo9618

Nuovo Utente
17 Mar 2013
27
0
0
PHP:
[...]
    /* -- Contiamo gli Elementi dell'Array -- */
    $count = count($array_sub);

    /* -- Impostiamo il numero di righe per ogni Pagina -- */
    $per_page = 12;

    /* -- Calcoliamo il Numero di Pagine necessarie per l'Impaginazione -- */
    $numero_pagine = ceil($count / $per_page);

    /* -- Intercettiamo la Pagina Corrente tramite Hash altrimenti è Pagina 1 -- */
    $separator = "?pos=" ;
    $page_corrente = (isset($_GET["pos"]) AND intval($_GET["pos"])) ? min($numero_pagine, intval($_GET["pos"])) : 1;

    /* -- Estraiamo il Sotto-Array -- */
    $righi_da_visualizzare = array_slice($array_sub, ($page_corrente-1)*$per_page, $per_page);

    /* -- Pagination -- */
    $output_pagination = '<nav id="pagination">';
    for($i=1; $i<=$numero_pagine; $i++ ) { 
        if($i!=$page_corrente) {
            $output_pagination .= '<a href="' . $_SERVER["PHP_SELF"] . $separator . $i . '">' .$i . '</a>';
        }
    }
    $output_pagination.= "</nav>";

Quel che ottengo sono tre pagine;
Prima pagina: 12 elementi ?pos=1 Seconda pagina: 12 elementi...na: 1 elemento [url]?pos=5 Etc. Come mai?
 

Lollo9618

Nuovo Utente
17 Mar 2013
27
0
0
Gli elementi che si trovano nell'ultima pagina vegono ripetuti nelle altre pagine (quelle che non dovrebbero esistere).
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
La variabile che controlla quante volte deve essere ripetuto il ciclo è $numero_pagine.
Prova a fare un var_dump() o a stamparla con un echo per vedere il suo valore.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho fatto una prova, ma a me sembra che funzi
PHP:
<?php
$array_sub=array('a','b','c','d','e','f','g','h','i','l');//test
$count = count($array_sub);
$per_page = 3; 
$numero_pagine = ceil($count / $per_page);
echo "num.pag. $numero_pagine <br>";//test
$separator = "?pos=" ; 
$page_corrente = (isset($_GET["pos"]) AND intval($_GET["pos"])) ? min($numero_pagine, intval($_GET["pos"])) : 1;
$righi_da_visualizzare = array_slice($array_sub, ($page_corrente-1)*$per_page, $per_page);
$righi=count($righi_da_visualizzare);//test
echo "num.righi $righi <br>";//test
//vizualizzo righi
print_r($righi_da_visualizzare);echo "<br>";//test
echo "sono a pag. $page_corrente<br>";
$output_pagination = '<nav id="pagination">';
    for($i=1; $i<=$numero_pagine; $i++ ) { 
        if($i!=$page_corrente) {
            $output_pagination .= '<a href="' . $_SERVER["PHP_SELF"] . $separator . $i . '">' .$i . '</a> ';
        }
    }
    $output_pagination.= "</nav>";
echo  $output_pagination;//test
?>
 

Lollo9618

Nuovo Utente
17 Mar 2013
27
0
0
ciao
ho fatto una prova, ma a me sembra che funzi

Ho provato anche il suo. Ma facendo queste sostituzioni:
PHP:
$array_sub=array('a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','v','z','z1','z2','z3','z4','z5','z3','z4');//test
$per_page = 12;
Cioè aumentando gli elementi ed elencandone 12 per pagina il problema rimane, andando a ?pos=4 mostra i tre elementi presenti in ?pos=3; e lo stesso per i pos seguenti al 4.
Guarda QUI

Quel che non deve accadere è che negli altri pos ci siano elementi dell'ultima pagina.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non capisco, ho guardato il tuo link che penso che tu abbia fatto con l'array che hai postato

num.pag. 3
num.righi 12
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => l [10] => m [11] => n )
sono a pag. 1
2 3

num.pag. 3
num.righi 12
Array ( [0] => o [1] => p [2] => q [3] => r [4] => s [5] => t [6] => v [7] => z [8] => z1 [9] => z2 [10] => z3 [11] => z4 )
sono a pag. 2
1 3

num.pag. 3
num.righi 3
Array ( [0] => z5 [1] => z3 [2] => z4 )
sono a pag. 3
1 2

$array_sub=array('a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','v','z','z1','z2','z3','z4','z5','z3','z4')

mi sembra che siano suddivisi giusti

edit
non ti stai confondendo perchè gli ultimi due valori sono uguali a gli ultimo della pag 2?
 
Ultima modifica:

Lollo9618

Nuovo Utente
17 Mar 2013
27
0
0
ciao
non capisco, ho guardato il tuo link che penso che tu abbia fatto con l'array che hai postato
non ti stai confondendo perchè gli ultimi due valori sono uguali a gli ultimo della pag 2?

No, indifferentemente dal fatto che sono uguali.
Il fatto è che gli elementi che si trovano in ?pos=3 si ripetono per tutte le pagine che poi non contengono elementi propri:
?pos=1 'a','b','c','d','e','f','g','h','i','l','m','n'
?pos=2 'o','p','q','r','s','t','v','z','z1','z2','z3','z4'
?pos=3 'z5','z3','z4'
?pos=4 'z5','z3','z4'
?pos=67 'z5','z3','z4'
?pos=142 'z5','z3','z4'
?pos=355 'z5','z3','z4'

E' questo quel che non dovrebbe accadere; vorrei che per esempio andando a ?pos=4 invece sarebbe vuota, come tutte le altre che non tengano elementi.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa ma non capisco
$numero_pagine deriva da un calcolo che dipende dal numero degli elementi dell'array ($array_sub) e da quanti ne decidi di visualizzare ($per_page)
(nell'esempio il numero di pagine è 3)
ora nel ciclo for metti $i=1 sino a $i<=$numero_pagine per cui da 1 a 3
quindi come fai ad avere ?pos=67 ? o qualsiasi numero maggiore di 3?
 

Lollo9618

Nuovo Utente
17 Mar 2013
27
0
0
ciao
scusa ma non capisco
$numero_pagine deriva da un calcolo che dipende dal numero degli elementi dell'array ($array_sub) e da quanti ne decidi di visualizzare ($per_page)
(nell'esempio il numero di pagine è 3)
ora nel ciclo for metti $i=1 sino a $i<=$numero_pagine per cui da 1 a 3
quindi come fai ad avere ?pos=67 ? o qualsiasi numero maggiore di 3?

Quasto è quel che sto infatti domandando :)

Guarda qui http://www.fantapic.net/prova.php?pos=67
Oppure http://www.fantapic.net/prova.php?pos=355

I tre elementi sono presenti :/
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
continuo a non capire, provando i tui link clicca, clicca, clicca.....innumerevoli volte il massimo è
http: // www . fantapic.net / prova.php?pos=3 (ho messo gli spazi per non far generare il link) e il minimo 1
 

Lollo9618

Nuovo Utente
17 Mar 2013
27
0
0
ciao
continuo a non capire, provando i tui link clicca, clicca, clicca.....innumerevoli volte il massimo è
http: // www . fantapic.net / prova.php?pos=3 (ho messo gli spazi per non far generare il link) e il minimo 1

Ahh, no scusa; devo averti fatto fraintendere. Io non intendo la paginazione sotto (i link nemerati nella pagina), ma i pos dei link.
Comunque il problema non riesco a risolverlo.

La pagina su cui sto lavorando è QUESTA.
Come vedi andando sotto ad un certo punto ripete le tre foto (quelle che si trovano in bikini?pos=3) all'infinito e non capisco perchè.
Il codice di questa pagina è quello di cui abbiamo parlato fino ad ora.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Ahh, no scusa; devo averti fatto fraintendere. Io non intendo la paginazione sotto (i link nemerati nella pagina), ma i pos dei link.
Comunque il problema non riesco a risolverlo.

La pagina su cui sto lavorando è QUESTA.
Come vedi andando sotto ad un certo punto ripete le tre foto (quelle che si trovano in bikini?pos=3) all'infinito e non capisco perchè.
Il codice di questa pagina è quello di cui abbiamo parlato fino ad ora.
non capisco (arteriosclerosi), dove tiri fuori i pos dei link?
 
Discussioni simili
Autore Titolo Forum Risposte Data
R generazione numeri o lettere casuali senza ripetizione Javascript 0
V ripetizione di dati estratti MySql MySQL 0
D php estrazione random nomi e senza ripetizione PHP 14
D file batch con ripetizione comando ogni tot secondi Programmazione 6
G Animazioni a ripetizione jQuery 2
SolidSnake4 Problemi ripetizione sfondo HTML e CSS 2
U ripetizione di estrazione da più db Classic ASP 3
P ripetizione bordo HTML e CSS 1
E Verifica dell'Età Javascript 0
M Memorizzare i dati nei campi prima dell'invio al db PHP 4
R Cambiare il nome dell'immagine dopo caricamento ftp HTML e CSS 0
C Rinominare file in base all'id dell'utente loggato PHP 0
R [c#] Proteggere il codice dell'applicazione C/C++ 0
felino DELL T130: windows o linux? Hardware 1
G Inserire "Leggi il resto dell'articolo" con link al post sul sito preso via RSS Email Marketing 0
gandalf1959 Estrazione e visualizzazione del simbolo dell'euro php/mysqli PHP 0
D [Apache] Riscrittura dell'url Apache 0
J [Javascript] Inserire un caricamento con animazione prima dell'esecuzione di un'azione Javascript 1
Y Ben trovati e grazie dell'ospitalità Presentati al Forum 0
A [PHP] Cancellare riga database a scelta dell'utente PHP 2
A [PHP] Modificare campo database in base alla scelta dell'utente PHP 2
F Come funziona in javascript l'accesso alle variabili dell'array Programmazione 1
romeocharly [WordPress] come si aprono le porte dell' FTP passivo ... WordPress 0
felino [Javascript] [jQuery] Slick Carousel: visualizzare una porzione dell'immagine successiva Javascript 0
MarcoGrazia [PHP] Verifica dell'input utente tramite funzione generica. PHP 0
Zea [PHP] RISOLTO - creare link con il risultato dell'interrogazione db PHP 1
S [WordPress] - Geo Coordinate dell'utente connesso WordPress 0
S Problemi con Dell Precision T5400 Windows e Software 2
giancadeejay [PHP] Estrarre solo record dell'utente connesso PHP 4
S [HTML] Float dell' <h1> HTML e CSS 1
Daniele450 [Javascript] Slide show in java script, senza array con nome visibile dell'immagine Javascript 2
S [HTML] Focus dell'input HTML e CSS 2
Monital [PHP] Eliminare la Barra di caricamento file alla fine dell'esecuzione PHP 11
A Strano comportamento dello slash / al fondo dell'URL HTML e CSS 1
Marco_88 Passare un valore prima dell'invio del form Ajax 0
B gestione eventi con addEventListener,comportamento strano dell'handle Javascript 2
A Passare il titolo al posto dell'id PHP 1
M Sito "e-commerce", stampare dati di registrazione e dati dell'acquisto da pagine diverse PHP 7
T salvataggio e ripresa dell'opzione select. PHP 9
MarcoGrazia Ricerca dell'esistenza del protocollo ( http | https ) in un url Javascript 2
A titolo al posto dell'id PHP 12
A APP per scaricare documento XML e visualizzarlo all'interno dell'applicazione Sviluppo app per Android 1
matteoraggi Ubuntu 15 ha bisgno dell'antivirus? Sicurezza e Virus 0
felino Disattivare gli annunci temporaneamente dell'area amministrativa Google AdSense 0
T Visualizzazione 'tardiva' dell'immagine passata. Sviluppo app per Android 2
L problema dell'user agent di un browser PHP 7
mirko.dagata Perdita di ranking dell'home page a seguito di restyling del sito SEO e Posizionamento 1
A separare la stampa dei valori dell'array PHP 1
P Come visualizzare le notifiche al login/logout dell'utente Javascript 0
J. Owlsteam Eventi mouse: come risalire all'indice dell'elemento cliccato? Java 1

Discussioni simili