Ciao a tutti...
Qualcuno sa darmi una mano ad impaginare dei record presi dal db, non riesco ad venirne a capo a far stampare i numeri delle pagine...
Ciao a tutti...
Qualcuno sa darmi una mano ad impaginare dei record presi dal db, non riesco ad venirne a capo a far stampare i numeri delle pagine...
Sai darmi una mano...
ti posto dove sono arrivato io...
il problema è che non riesco a far stampare i numeri delle pagine...Codice PHP:
$per_pagina = 3;
$totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id) FROM post"));
$totale = $totale_dati[0];
$totale_per_pagina = ceil($totale/$per_pagina);
$pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
$start = ($pagina_attuale - 1)*$per_pagina;
mysql_query("SELECT * FROM post ORDER BY id DESC LIMIT {$start}, {$per_pagina}");
ho fatto una cosa del genere ma non è come lo desideravo io...
Codice PHP:
Pagina <?php echo (int)$_GET['pag']; ?> di <?php echo $totale_per_pagina; ?>
<?php
$avanti = $pagina_attuale + 1;
$indietro = $pagina_attuale - 1;
if($pagina_attuale==1){ for($i = 1;$i<=5;$i++){ ?>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $i; ?>"><?php echo $i; ?></a></span>
<?php } ?>
<span class="pagina">...</span>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo ($totale_per_pagina-4); ?>"><?php echo ($totale_per_pagina-4); ?></a></span>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo ($totale_per_pagina-3); ?>"><?php echo ($totale_per_pagina-3); ?></a></span>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo ($totale_per_pagina-2); ?>"><?php echo ($totale_per_pagina-2); ?></a></span>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo ($totale_per_pagina-1); ?>"><?php echo ($totale_per_pagina-1); ?></a></span>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $totale_per_pagina; ?>"><?php echo $totale_per_pagina; ?></a></span>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $avanti; ?>">Successiva>></a></span>
<?php } ?>
<?php if($pagina_attuale>1){ ?>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $indietro; ?>"><<Indietro</a></span>
<?php for($i = 1;$i<=$totale_per_pagina;$i++){ ?>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $i; ?>"><?php echo $i; ?></a></span>
<?php } ?>
<span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $avanti; ?>">Successiva>></a></span>
<?php } ?>
Si lo letta ci sono quasi, ma non riesco ad fare come vorrei fare io...
Dovrei stampare il numero delle pagine in questo modo.
esempio
Se lo consideri spam lo puoi togliere
http://www.torgo.com/blog/page/16
se vai avanti e indietro ti puoi fare un idea, non so come spiegarlo...
Qui: http://www.webmasterpoint.org/php/tutorial/59.asp c'è il codice pronto, cosa non riesci a fare?
il codice lo scritto ma non riesco ad fare come ti ho mostrato nel link di prima...
quello che dici tu stampa
io vorrei fare si in questo modo ma non che mi stampi tutti i numeri delle pagine fino alla fine, ma che me le mostri di conseguenza come ti ho fatto notare nel link precedete....precedente |page1|page2|ecc. successivo
scusa per il ritardo della risposta, ma non potevo proprio rispondere.
Purtroppo il metodo che te dici credo di non saperlo fare, quindi non ti potrei aiutare con il codice, ma puoi vedere qui::
http://php.html.it/articoli/leggi/85...one-di-dati/4/
Se non sbaglio te vuoi applicare il secondo metodo indicato nell'articolo
Ultima modifica di sevenjeak : 20-07-2010 alle ore 19.26.19
su per giù e la stessa cosa postata da andreafallico...
Se ho capito bene, prova questo:
il codicesostituiscilo con questo:Codice PHP:
for ($i = 1; $i <= $pager->numPages; $i++) {
echo " | ";
if ($i == $pager->page)
echo "Page $i";
else
echo "<a href=\"thepage.php?page=$i\">Page $i</a>";
}
Codice PHP:
$max = (($pager->page + 2) > $pager->numPages) ? $pager->numPages : $pager->page + 2;
$min = (($pager->page - 2) < 1) ? 1 : $pager->page - 2;
for ($i = $min; $i <= $max; $i++) {
echo " | ";
if ($i == $pager->page)
echo "Page $i";
else
echo "<a href=\"thepage.php?page=$i\">Page $i</a>";
}
Ultima modifica di andreafallico : 20-07-2010 alle ore 21.08.51
non funziona da errore nel for...
lo script lo modificato cosi....
Codice PHP:
<?php
include 'impostazioni_blog.php';
$per_pagina = 1;
$totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id) FROM post"));
$totale = $totale_dati[0];
$totale_pagine = ceil($totale/$per_pagina);
$pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
$start = ($pagina_attuale-1)*$per_pagina;
mysql_query("SELECT * FROM post ORDER BY id DESC LIMIT {$start}, {$per_pagina}");
if($pagina_attuale>0 AND $pagina_attuale<=$totale_pagine){
echo ($pagina_attuale == 1) ? "Indietro\n" : '<a href="?pag=1">Prima Pagina</a>'."\n".'<a href="?pag='.($pagina_attuale-1).'">Indietro</a>'."\n";
for($i = 1;$i<=$totale_pagine;$i++){
echo " | ";
echo ($i == $pagina_attuale) ? "$i\n" : '<a href="?pag='.$i.'">'.$i.'</a>'."\n";
}
echo ($pagina_attuale == $totale_pagine) ? " Successivo\n" : ' <a href="?pag='.($pagina_attuale+1).'">Successivo</a>'."\n".' <a href="?pag='.$totale_pagine.'">Ultima Pagina</a>'."\n";
}?>
Qual è l'errore?
Lo script che ti ho postato, se sei nella pagina 10, visualizza:
Codice:precedente | page 8 | page 9 | page 10 | page 11 | page 12 | successivo
postalo cosi vedo dove sbaglio....
Ho preso il codice qui: http://www.webmasterpoint.org/php/tutorial/59.asp, e ho modificato questo:
in questo:Codice PHP:
for ($i = 1; $i <= $pager->numPages; $i++) {
echo " | ";
if ($i == $pager->page)
echo "Page $i";
else
echo "<a href=\"thepage.php?page=$i\">Page $i</a>";
}
Codice PHP:
$max = (($pager->page + 2) > $pager->numPages) ? $pager->numPages : $pager->page + 2;
$min = (($pager->page - 2) < 1) ? 1 : $pager->page - 2;
for ($i = $min; $i <= $max; $i++) {
echo " | ";
if ($i == $pager->page)
echo "Page $i";
else
echo "<a href=\"thepage.php?page=$i\">Page $i</a>";
}
Ultima modifica di andreafallico : 20-07-2010 alle ore 21.09.22
Dimmi dove sbaglio allora...
Codice PHP:
<?php
include 'impostazioni_blog.php';
$per_pagina = 1;
$totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id) FROM post"));
$totale = $totale_dati[0];
$totale_pagine = ceil($totale/$per_pagina);
$pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
$start = ($pagina_attuale-1)*$per_pagina;
mysql_query("SELECT * FROM post ORDER BY id DESC LIMIT {$start}, {$per_pagina}");
if($pagina_attuale>0 AND $pagina_attuale<=$totale_pagine){
echo ($pagina_attuale == 1) ? "Indietro\n" : '<a href="?pag=1">Prima Pagina</a>'."\n".'<a href="?pag='.($pagina_attuale-1).'">Indietro</a>'."\n";
$max = (($pagina_attuale+2) > $totale_pagine) ? $totale_pagine : ($pagina_attuale+2);
$min = (($pagina_attuale-2) < 1) ? 1 : ($pagina_attuale-2);
for($i=$min;$i<=$max;i++){
echo " | ";
echo ($i == $pagina_attuale) ? "$i\n" : '<a href="?pag='.$i.'">'.$i.'</a>'."\n";
}
echo ($pagina_attuale == $totale_pagine) ? " Successivo\n" : ' <a href="?pag='.($pagina_attuale+1).'">Successivo</a>'."\n".' <a href="?pag='.$totale_pagine.'">Ultima Pagina</a>'."\n";
}?>
Ti ritorna qualche errore? Posta il link della pagina.
Lo sto provando in locale...
Parse error: syntax error, unexpected T_INC, expecting ')'
Almeno scrivilo tutto l'errore e soprattutto il numero della linea.
on line 16
Ultima modifica di hotmailpower : 20-07-2010 alle ore 20.48.22
Hai dimenticato di mettere il dollaro: anziché $i++ hai scritto i++.
errore di distrazione, ma sorge un problema cosa dovrei fare in modo da stampare in questo modo....
precedente |1 |[...] | page 8 | page 9 | page 10 | page 11 | page 12 | [...] |18|successivo