Algoritmo efficente per query, articoli e sistemazione in pagine. – PHP/MYSQL
La pubblicazione di oggi è un algoritmo abbastanza performante, scritto in PHP che si occupa durante una query mysql per l’estrapolazione di dati dal DB, di rendere proporzionale il numero di pagine abbinato al numero di articoli per pagina.
$qry = "SELECT * FROM 'articoli' WHERE 'pubblicato' = 1 ORDER BY 'id_articolo' DESC LIMIT ".($n_pag * $b) - $b.", $b"; //dove $n_pag è il numero della pagina e $b è il numero di articoli per pagina. |
Per chi ha conoscenze di PHP e Mysql, il piccolo algoritmo che agisce sulla funzione LIMIT renderà estremamente veloce e performante l’estrapolazione di $b articoli per $n_pag dal database ordinati in modo decrescente.
Eventuali applicazioni pratiche:
Integrarlo è abbastanza facile, lo script iniziale avrà una costante $b = numero di articoli per pagina;
$b = 5; |
poi si controllerà la variabile ‘pag’ passata in GET.
Quindi si assegna
$n_pag = mysql_escape_string($_GET['pag']); $qry = "SELECT * FROM 'articoli' WHERE 'pubblicato' = 1 ORDER BY 'id_articolo' DESC LIMIT ".($n_pag * $b) - $b.", $b"; //dove $n_pag è il numero della pagina e $b è il numero di articoli per pagina. $testo = mysql_query($qry); while ($text = mysql_fetch_array($testo)){ //estrapola ogni articolo pubblicato in ordine decrescente echo $text['titolo']."<br/>".$text['testo']."<br/>".$text['autore']."<br/>".$text['id_articolo']."<br/>"; } |
<?php //Questo pezzo di codice può essere considerato il footer del blog, aggiungerà con l'aumentare di articoli altri numeri di pagina clikkabili. $articoli_totali_db = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM `articoli`")); // QUERY che conta il numero totale di articoli. $numero_pagine = ($articoli_totali_db['COUNT(*)'] / $b); //numero di pagine. Se il totale articoli nel DB è dispari il risultato sarà di tipo float $numero_pagine = ceil($numero_pagine); // ceil() approssima per eccesso il numero di pagine per avere un num intero. echo "Pagina: "; for ($i = 1; $i <= $numero_pagine; $i++){ // URL pagina del tipo: blog.php?pag=$i echo "<a href='".$_SERVER['PHP_SELF']."?pag=$i'>$i</a>|"; } ?> |
Commenti