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;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 .= '« ';
}
// 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 .= ' »';
}
return $link_paginazione;
}
?>
come posso risolvere????
Grazie per tutto l'aiuto...