integrare paginazione

rada

Nuovo Utente
25 Feb 2012
18
0
1
Buon giorno a tutti sono nuovo sia di forum che di php,ho un problema sicuramente per alcuni banale,vorrei capire come inserire la paginazione nel codice dell'articolo "creare un blog".
Di seguito posto il codice dell'articolo,mi piacerebbe capire come creare la paginazione.
Grazie anticipatamente Claudio

PHP:
<?

// includiamo il file di configurazione
@include "config.php";

// includiamo la pagina contenente il codice per la creazione delle anteprime
@require "anteprima.php";

// estraiamo i dati relativi agli articoli dalla tabella
$sql = "SELECT * FROM articoli ORDER BY art_data DESC";
$query = @mysql_query($sql) or die (mysql_error());

//verifichiamo che siano presenti records
if(mysql_num_rows($query) > 0){
  // se la tabella contiene records mostriamo tutti gli articoli attraverso un ciclo
  while($row = mysql_fetch_array($query)){
    $art_id = $row['art_id'];
    $autore = stripslashes($row['art_autore']);
    $titolo = stripslashes($row['art_titolo']);
    $data = $row['art_data'];
    $articolo = stripslashes($row['art_articolo']);
   
    //valorizziamo una variabili con il link all'intero articolo
    $link = " ..<br><a href=\"articolo.php?id=$art_id\">Leggi tutto</a>";

    echo "<h2>".$titolo."</h2>";
   
    // creaimo l'anteprima che mostra le prime 30 parole di ogni singolo articolo
    // per farlo utilizzo una funzione che vi presenterò più avanti
    echo @anteprima($articolo, 5, $link); 
    echo "<br><br>";
   
    // formattiamo la data nel formato europeo
    $data = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $data);

    // stampiamo una serie di informazioni
    echo  "Scritto da <b>". $autore . "</b>";
    echo  "| Articolo postato il <b>" . $data . "</b>";
    echo  "| Commenti: "; 
  
    // mostriamo il numero di commenti relativi ad ogni articolo
    $conta = "SELECT COUNT(com_id) as conta from commenti WHERE com_art = '$art_id'";
    $conto = @mysql_query ($conta);
    $tot = @mysql_fetch_array ($conto);
    echo $sum2 = $tot['conta'];
    echo "<hr>";
  } 
}else{
  // se in tabella non ci sono records...
  echo "Nessun articolo presente.";
}


?>
 

rada

Nuovo Utente
25 Feb 2012
18
0
1
Potresti utilizzare questa classe.


Grazie per la risposta,ma ho un problemino,ho capito che in questo modo creo la classe paginazione,po scrivo il codice per richiamarla,ma continuo a vedere tutti gli articoli,con l'aggiunta delle pagine.
Scusa ancora ma sono proprio tarello in php :boxing:
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Vediamo di adattare al tuo codice:
PHP:
<?php
// includiamo il file di configurazione
@include "config.php";
// includiamo la pagina contenente il codice per la creazione delle anteprime
@require "anteprima.php"; 
//includiamo il file della classe
@require("paginazione.php");
// istanziamo la classe per l'impaginazione
$p = new Paging;
// numero massimo di risultati per pagina
$max = 5;
// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);
// contiamo i records nel database
$query_count = @mysql_query("SELECT * FROM articoli") or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());

// troviamo il numero delle pagine che dovrà essere contato
$pagine = $p->contaPagine($count, $max);

// limitiamo la SELECT al numero di risultati per pagina
$query = @mysql_query("SELECT * FROM articoli ORDER BY art_data DESC LIMIT ".$inizio.",".$max) or die (mysql_error());

/* qui metti il contenuto del while
*/

//mostriamo le pagine
$lista = $p->listaPagine($_GET['p'], $pagine);
echo $lista . "<br>";
//mostriamo il navigatore Precedente/Successiva
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);
echo $navigatore;
?>
 

rada

Nuovo Utente
25 Feb 2012
18
0
1
Grazie grazie grazie Eliox,perfetto ho scoperto pure l'errore che facevo,posto il codice corretto nel caso.
Grazie infinite saluto Claudio.
PHP:
<?

// includiamo il file di configurazione
@include "config.php";

// includiamo la pagina contenente il codice per la creazione delle anteprime
@require "anteprima.php";

// estraiamo i dati relativi agli articoli dalla tabella
$sql = "SELECT * FROM articoli ORDER BY art_data DESC";
$query = @mysql_query($sql) or die (mysql_error());

//includiamo il file della classe 
@require("paginazione.php"); 
// istanziamo la classe per l'impaginazione 
$p = new Paging; 
// numero massimo di risultati per pagina 
$max = 8; 
// identifichiamo la pagina da cui iniziare la numerazione 
$inizio = $p->paginaIniziale($max); 
// contiamo i records nel database 
$query_count = @mysql_query("SELECT * FROM articoli") or die (mysql_error()); 
$count = @mysql_num_rows($query_count) or die (mysql_error()); 

// troviamo il numero delle pagine che dovrà essere contato 
$pagine = $p->contaPagine($count, $max); 

// limitiamo la SELECT al numero di risultati per pagina 
$query = @mysql_query("SELECT * FROM articoli ORDER BY art_data DESC LIMIT ".$inizio.",".$max) or die (mysql_error()); 


//verifichiamo che siano presenti records
if(mysql_num_rows($query) > 0){
  // se la tabella contiene records mostriamo tutti gli articoli attraverso un ciclo
  while($row = mysql_fetch_array($query)){
    $art_id = $row['art_id'];
    $autore = stripslashes($row['art_autore']);
    $titolo = stripslashes($row['art_titolo']);
    $data = $row['art_data'];
    $articolo = stripslashes($row['art_articolo']);
   
    //valorizziamo una variabili con il link all'intero articolo
    $link = " ..<br><a href=\"articolo.php?id=$art_id\">Leggi tutto</a>";
	 // creaimo l'anteprima che mostra le prime 30 parole di ogni singolo articolo
    // per farlo utilizzo una funzione che vi presenterò più avanti
?>
  <div id="titolo"><? echo "<h2>".$titolo."</h2>";?></div>  

   
 <div id="anteprima"> <?  echo @anteprima($articolo, 5, $link); 
    echo "<br><br>";?></div>
 <?   
    // formattiamo la data nel formato europeo
    $data = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $data);
?>

 <div id="tagecc"> <?    // stampiamo una serie di informazioni
    echo  "Tag <b>". $autore . "</b>";
    echo  "|  <b>" . $data . "</b>";
    echo  "| Commenti: "; 
   // mostriamo il numero di commenti relativi ad ogni articolo
    $conta = "SELECT COUNT(com_id) as conta from commenti WHERE com_art = '$art_id'";
    $conto = @mysql_query ($conta);
    $tot = @mysql_fetch_array ($conto);
    echo $sum2 = $tot['conta'];
    echo "<br>";
	?> </div>
 <div id="pag"><?   
  } 
}else{
  // se in tabella non ci sono records...
  echo "Nessun articolo presente.";
}

//mostriamo le pagine 
$lista = $p->listaPagine($_GET['p'], $pagine); 
echo $lista . "<br>"; 


//mostriamo il navigatore Precedente/Successiva 
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine); 
echo $navigatore; 

?>
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Figurati, felice di esserti stato utile, inoltre grazie per aver postato la tua soluzione.
Solo una cosa, non utilizzare "<?" come delimitatore, è deprecato, utilizza invece "<?php".
 

rada

Nuovo Utente
25 Feb 2012
18
0
1
@ Eliox grazie.

E non usare la chiocciola per non mostrare gli errori.
In produzione puoi mettere questo all'inizio dello script:
PHP:
error_reporting(0);
E in sviluppo lo sostituisci con questo:
PHP:
error_reporting(E_ALL);

Perchè Ale? potresti spiegare la situazione e di preciso cove dovrei agire.
Grazie Claudio
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Sono d'accordo solo in parte con Alex, secondo me si poò usare l'operatore di silence una volta che si è debuggato il sorgente; l'utilizzo di direttive nel codice è invece a mio parere totalmente da sconsigliare, gli errori non vanno nascosti ma corretti.
Comunque ognuno ha il suo stile di sviluppo.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
In produzione non si devono mostrare errori, anche quando ci sono. Molto meglio una pagina bianca.
In sviluppo, invece, bisogna visualizzare tutti gli errori, in modo che il programmatore (o chi per lui) possa correggerli.

Questa soluzione si può attuare o rimuovendo/aggiungendo gli operatori di silence ogni volta, oppure semplicemente impostando il livello di visualizzazione degli errori.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
In produzione non si devono mostrare errori, anche quando ci sono. Molto meglio una pagina bianca.
In sviluppo, invece, bisogna visualizzare tutti gli errori, in modo che il programmatore (o chi per lui) possa correggerli.

Questa soluzione si può attuare o rimuovendo/aggiungendo gli operatori di silence ogni volta, oppure semplicemente impostando il livello di visualizzazione degli errori.

In produzione gli errori non ci dovrebbero essere:)
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Non so Alex, secondo me l'error_reporting(0) stimola troppo la pigrizia dello sviluppatore, è chiaro che ciò non vale per quelli più coscienziosi.
 
Discussioni simili
Autore Titolo Forum Risposte Data
S integrare script per paginazione ad una pagina asp Classic ASP 11
V [JAVA] come integrare un software scritto in java su una pagina web? Java 4
W Integrare Javascript in PHP PHP 14
M [WordPress] [HTML] INTEGRARE GESTIONALE IMMOBILIARE SU UN SITO WEB DA FARE WordPress 0
F Integrare I Post Di Wordpress.com In Una Pagina HTML WordPress 2
P [HTML] integrare Google pagina web HTML e CSS 5
otto9due Form personalizzato in bootstrap da integrare nel tema wordpress WordPress 0
C Come posso integrare il bottone "paga adesso" di paypal e un form php per invio dati? PHP 1
ecosito Integrare i post di Wordpress.com in una pagina HTML HTML e CSS 1
K Integrare player per streaming mss:// nella mia App Sviluppo app per Android 0
C Integrare sito html e Joomla Joomla 8
S integrare diversi tipi di pagamento in un sito web, e convalidare l' iscrizione PHP 8
voldemort Integrare moduli in R in un simulatore Java Java 1
T Integrare AdMob dentro app Android Sviluppo app per Android 2
T Integrare bottone stampa in app Android Sviluppo app per Android 1
S integrare RSS tramite codice - no tool esterni Javascript 4
P Integrare php con java PHP 20
Emix Problema nell'integrare uno script ad un altro esisnte... Ajax 2
V integrare php/mysql con pagine html/css PHP 7
F integrare/collegare twitter al proprio sito PHP 1
Monital Integrare il mio script a joomla Joomla 2
W Non riesco a integrare php con html PHP 1
H Integrare script php in script php? PHP 78
Frank10 Non so come integrare una slideshow di immagini HTML e CSS 2
F Codice invio sms da integrare PHP 1
R Integrare (in modo completo) un blog in Wordpress con Facebook WordPress 2
S Integrare forum in pagina html HTML e CSS 0
V Ragazzi ho bisogno di un aiuto - integrare news in un sito - CMS (Content Management System) 5
M Integrare un cms al proprio sito web CMS (Content Management System) 3
M integrare un'applicazione fatta da me in joomla Joomla 3
K modulo invio mai:l non riesco ad integrare captcha PHP 18
S Integrare Wordpress HTML e CSS 0
C integrare 123flaschat in drupal CMS (Content Management System) 7
C integrare flash con stile mootools Flash 1
C integrare il database con fronypage? Database 1
W integrare fancybox e php PHP 4
catellostefano Integrare joomla a WHMCS Joomla 2
catellostefano integrare phpbb con joomla Joomla 7
G non riesco ad integrare l’interprete php nel server Apache su Vista PHP 2
catellostefano Integrare net2ftp_v0.97 su joomla Joomla 0
T [ADOdb] Integrare più funzioni con una sola form PHP 1
P Script da integrare in vBulletin PHP 0
D Integrare Flash con ...... Flash 1
B Integrare Asp/html Per Le Select Classic ASP 0
G Integrare una pagina html in una pagina asp ??? Classic ASP 1
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
motleyrulez Paginazione Tabella Bootstrap Javascript 2
B [Java] Paginazione in risposta HTTP Java 0
L [PHP] paginazione con classi vendor PHP 2
K [PHP] Paginazione Wordpress: passare variabile PHP 6

Discussioni simili