[risolto] Articolo su db molto lungo.

  • Creatore Discussione Creatore Discussione migo80
  • Data di inizio Data di inizio

migo80

Utente Attivo
25 Apr 2013
243
3
18
Buona sera avrei bisogno di un aiuto....dovrei realizzare una paginazione di un articolo prelevato da un record, il problema è che questo articolo è un po lungo come si può dividerlo su due pagine?
 
Lo scrip che sto provando è il seguente:

PHP:
		   $tot_pages = explode("[NP]", html_entity_decode ($articolo));


$page = isset($_GET['page']) ? !is_numeric($_GET['page']): 1;


$url= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

// Stampo la pagina richiesta
echo "<p>" . $tot_pages[$page - 1] . "</p>";


for ($i = 1; $i < count($tot_pages)+1; $i++)
{
  if ($i == $page) {
    echo "<b>$i</b> ";
  }else{
    echo "<a href=\"" . basename($url) . "-".$i."\">$i</a> ";

  }
}

L'articolo me lo interrompe nel punto giusto la numerazione delle pagine è corretta l' unico problema è che cliccando ad esempio sul link della pagina 2 l'url cambia ma io sono sempre nella prima pagina.
p.s. ho gli url riscritti nll' htacces.
 
ciao
c'è qualcosa che non mi torna qui
PHP:
<?php
//.....
$page = isset($_GET['page']) ? !is_numeric($_GET['page']): 1;
//.....
?>
http://it2.php.net/manual/it/function.is-numeric.php
is_numeric ritorna TRUE se la variabile è numerica o stringa numerica, FALSE se non lo è, non ritorna il valore numerico, poi php può trasformare FALSE in 0 o TRUE in 1.
se $_GET['page'] contiene es 2 (o 3 o 4 o...) avendo messo la negazione in $page ti ritrovi 0
non vorrei dire una ca...ta ma prova

PHP:
<?php
//.....
$page = isset($_GET['page']) ? (int)$_GET['page']: 1;
//.....
?>
comunque prova con questo schema che funzia
PHP:
<?php
//$tot_pages = explode("[NP]", html_entity_decode ($articolo));
$tot_pages[0]="nel mezzo";
$tot_pages[1]="di camin";
$tot_pages[2]="di nostra vita";
$tot_pages[3]="mi ritrovai";
$tot_pages[5]="in una selva oscura";
$tot_pages[5]="che la diritta via";
$tot_pages[6]="era smarrita";
$page = isset($_GET['page']) ? (int)$_GET['page']: 1;
//$url= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
// Stampo la pagina richiesta
echo "<p>" . $tot_pages[$page - 1] . "</p>";
// Creo i link per la navigazione delle diverse pagine
for ($i = 1; $i < count($tot_pages)+1; $i++)
{
  if ($i == $page) {
    echo "<b>$i</b> ";
  }else{
    echo "<a href=\"?page=$i\">$i</a>";
	//echo "<a href=\"" . basename($url) . "-".$i."\">$i</a> ";
  }
}  
?>
 
Grazie per la risposta, ho provato lo script che mi hai postato, disattivato il mod_rewrite, nell'url le pagine avanzano ma il contenuto e i link della paginazione rimane ferma alla numero 1.
 
ciao
non so come hai modificato quindi riprendo il tuo primo script.
ti conviene verificare tutte le variabili in modo da vedere dove si trova l'inghippo
PHP:
<?php
//....
$tot_pages = explode("[NP]", html_entity_decode ($articolo));
echo "<pre>";//poi i pre e i var_dump li togli
var_dump($tot_pages);//verifichi l'array
$page = isset($_GET['page']) ? (int)$_GET['page']: 1;
var_dump($page);//verifichi cosa inviato con il get
$url= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//se lo usi verifica anche questo
// Stampo la pagina richiesta
//echo "<p>" . $tot_pages[$page - 1] . "</p>";
var_dump($tot_pages[$page - 1]);//verifichi cosa salta fuori
echo "</pre>";
for ($i = 1; $i <= count($tot_pages); $i++){//piccola modifica <=
	if ($i == $page) {
		echo "<b>$i</b> ";
	}else{
		echo "<a href=\"" . basename($url) . "-".$i."\">$i</a> ";//ANCHE QUI C'E QUALCOSA CHE NON MI TORNA vedi poi
	}
}
//....
?>
non so come si chiama la pagina, ma facciamo finta che si chiami pinco.php e che tu sia a pag 1 la riga dell'echo ti da
HTML:
<a href="pinco.php-2">2</a>
ecc...
per trasmettere il valore via get manca la la querystringa quell a href dovrebbe risultare
HTML:
<a href="pinco.php?page=2">2</a>
ecc...
quindi usando 'vedi sorgente' del browser verifica come ti risulta l'html
 
Ciao borgo grazie al tuo aiuto ho risolto, in pratica sbagliavo sia nel link dello script non passando la variabile id dell'articolo insieme alla variabile pagina e poi nel mod_rewrite questo è lo script funzionante:

PHP:
 $tot_pages = explode("[NP]", html_entity_decode ($articolo));

$tot_pages;

$page = isset($_GET['page']) ? (int)$_GET['page']: 1;

echo $tot_pages[$page - 1];

for ($i = 1; $i <= count($tot_pages); $i++){
    if ($i == $page) {
        echo "<b>$i</b> ";
    }else{
        echo '<a href="http://localhost/mio_sito/segue/nome_pagina-'.$id.'-pagina-'.$i.'">'.$i.'</a> ';
    }
}
 

Discussioni simili