[RISOLTO] paginazione PHP + mysql

Hackx

Utente Attivo
20 Ago 2013
108
0
16
Ciao a tutti,

Innanzitutto ecco qui il mio codice:

PHP:
<?php 

include "config.php";

$pag = (isset($_GET["pag"]));
if (isset($pag) == false || is_numeric($pag) == false ||  $pag < 1)
{
     $pag = 1;
}

$fine = 5;
$inizio = ($pag - 1) * $fine;

$query = mysqli_query($conn, "SELECT * FROM nome_tabella LIMIT " . $inizio . "," .$fine) or die (mysqli_error());
$quanti = mysqli_num_rows($query);

while ($row = mysqli_fetch_assoc($query)) {
echo $row['nome'].'<br/>';
echo $row['descrizione'].'<br/><hr>';
}

if ($quanti == 0)
{
     echo "Nessun record";
}
else 
{
     for($x=0; $x<$quanti; $x++)
	 {
	     $rs = mysqli_fetch_row($query);
		 $nome_campo = $rs[0];

?>


<p><?phpecho $nome_campo;?></p>


<?php

     }
	
}

     $query = mysqli_query ($conn, "SELECT * FROM nome_tabella");
	 $quanti = mysqli_num_rows ($query);
	 
		$intero = $quanti / $fine;

?>

<p> Pagina <?php echo $pag; ?> di <?php echo $intero; ?></p>

<p>

<?php

     for($x=1; $x<$intero+1; $x++)
	 {
	     if($x == $pag)
		 {
		 
?>

<b> <? echo $x; ?> </b> |

<?php

     }
	 else
	 {

?>

<a href="paginazione.php?pag=<?php echo $x; ?>"> <?php  echo $x; ?> </a> |

<?php 

     }
}

?>

</p>

<?php

     mysqli_close($conn);

?>

Per la prima pagina mi mostra correttamente tutti i 5 risultati che voglio ..ma il problema è che ci sono due pagine .. cliccando sul "link della pagina due" mi mostra i record della prima pagina.. però cambiando il link principale con la ".php?pag=2"

Quindi la mia domanda è:
Come posso riuscire a cambiare pagina, cambiando anche i record ?

Spero di essermi spiegato :)

Ringrazio moltissimo in anticipo,
Andrea
 

Bedo

Utente Attivo
13 Gen 2014
38
0
0
Venezia
...prova a modificare..
PHP:
<a href="paginazione.php?pag=<?php echo $x; ?>"> <?php  echo $x; ?> </a>

con

PHP:
<a href="paginazione.php?pag=<?php echo $x+1; ?>"> <?php  echo $x+1; ?> </a>
 

Hackx

Utente Attivo
20 Ago 2013
108
0
16
...prova a modificare..
PHP:
<a href="paginazione.php?pag=<?php echo $x; ?>"> <?php  echo $x; ?> </a>

con

PHP:
<a href="paginazione.php?pag=<?php echo $x+1; ?>"> <?php  echo $x+1; ?> </a>

Ciao Bedo :)

Innanzitutto grazie della risposta.
Guarda ho provato .. ma così facendo modifica solo il numero incrementandolo di 1.. ovvero invece che 2 e 3 diventa 3 e 4 .. ma purtroppo l'errore rimane.

Andrea
 

Bedo

Utente Attivo
13 Gen 2014
38
0
0
Venezia
...forse nn ho capito la tua domanda...
...il problema è l'indice del link alla pagina successiva ( php?pag=indiceerrato )
..o la pagina successiva si carica ma i record contenuti sono quelli della pagina precedente...?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, il problema è qui
PHP:
$pag = (isset($_GET["pag"]));
correggi
PHP:
$pag = $_GET["pag"];
@Borgo
sta già utilizzando mysqli ( è uno dei pochi :) )

EDIT

meglio ancora modifica i primi controlli cosi
PHP:
$pag = 1;
if (isset($_GET["pag"]) && is_numeric($_GET["pag"]) && $_GET["pag"] > 0) {
    $pag = $_GET["pag"];
}
 
Ultima modifica:

Hackx

Utente Attivo
20 Ago 2013
108
0
16
Finalmente :D !

Alla fine ho risolto con ciò che mi è stato suggerito da criric :

PHP:
$pag = 1;
if (isset($_GET["pag"]) && is_numeric($_GET["pag"]) && $_GET["pag"] > 0) {
    $pag = $_GET["pag"];
}

Grazie mille a tutti davvero :)
Andrea


P.S.
Volevo domandarvi un'altra cosuccia riguardo sempre all'impaginazione.

Ad esempio per i "file" di un database ...

si usa il costrutto SELECT più LIMIT per "limitare" i file estratti
+
il classico costrutto SELECT * FROM per l'estrazione

---------------------------------------------------------------------------------------

Ecco le mie domande:

1) Ma se dovessi limitare dei file immagine estratti da una CARTELLA FISICA come potrei fare?
2) e per la semplice estrazione ?

Vi ringrazio ancora per l'attenzione :)

Cordiali saluti,
Andrea
 

faxhouse

Nuovo Utente
18 Set 2009
15
0
0
ciao a tutti
ho seguito l'esempio del primo link applicandolo al mio codice e funziona.
ho aggiunto la stampa a video della pagina corrente.

ma se volessi visualizzare il menù delle pagine così:

Pagine: < ... 4 [5] 6 ... >

dove nell'esempio :
[5] è la pagina corrente
4 e 6 le pagine più vicine (ma va?? :D)
<... e ...> manda avanti o indietro di 1.

... proprio non ci arrivo!! scusate l'ignoranza.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, devi prima recuperare il numero totale di pagine, seguendo il codice sopra
PHP:
$tot_pagine = ceil($quanti / $fine);
poi con un ciclo for le mostri
PHP:
for ($i = 1; $i <= $tot_pagine; $i++) {
    echo "<a href='paginazione.php?pag=$i'>$i</a>";
}
 

faxhouse

Nuovo Utente
18 Set 2009
15
0
0
grazie!
intanto avevo risolto con un controllo sulle pagine precedenti e successive, in base al primo e all'ultimo record.

nell'esempio che mi hai fatto, il file paginazione.php sarebbe la mia pagina principale, giusto?
 

faxhouse

Nuovo Utente
18 Set 2009
15
0
0
perfetto!

ho aggiunto un controllo sulla pagina corrente
PHP:
 $pag = $_GET['pag'];
                        echo "Pages:";

                        for ($i = 1; $i <= $all_pages; $i++) { 
 
                               if($i == $pag) echo "[$i]";
                               else
                               echo "<a href='index.php?pag=$i'>$i</a>"; 
                        }
perfetto!

ora ho tutto il tempo per ragionarci su, in attesa di avere un database più "pieno" e la visualizzazione più completa (con i bottoni di avanzamento < e >)
 
Ultima modifica di un moderatore:

faxhouse

Nuovo Utente
18 Set 2009
15
0
0
rieccomi qua.

mi sono accorto di una cosa, un piccolo particolare.

http://www.nowheels.it

quando accedo alla pagina, e vado in basso a leggere le news, vedo la stampa delle pagine così:

pages: 1 2 3

le due [ ] le visualizza solo dopo che ho cliccato su una di queste pagine (pure se clicco sulla stessa pagina)

in effetti, nella barra degli indirizzi, appena entro nel sito vedo scritto "http://www.nowheels.it/", cliccando sulle pagine per scorrere le news, comincio a leggere http://www.nowheels.it/index.php?pag=1 (e a questo punto appaiono le parentesi quadre sulla pagina attiva.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, modifica questo
PHP:
$pag = $_GET['pag'];
con
PHP:
$pag = 1;
if (isset($_GET['pag']) && is_numeric($_GET['pag'])) {
    $pag = $_GET['pag'];
}
 

faxhouse

Nuovo Utente
18 Set 2009
15
0
0
perfetto, grazie!!!

per capire, questo codice controlla che il parametro non sia nullo e che sia numerico, giusto?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Esatto, tradotto in italiano diventa
Codice:
se( è settato ed è numerico ) {
altrimenti rimane valida la prima istruzione
PHP:
$pag = 1;
 
Discussioni simili
Autore Titolo Forum Risposte Data
D [risolto] Problemi di paginazione dei risultati con una determinata query Classic ASP 4
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15

Discussioni simili