add pagination

master
Bastien OLLIER 3 years ago
parent 5760a97ab6
commit e290ee0a7a

@ -26,9 +26,19 @@ class controllerAdmin {
$this->setNbArticlesParPage($_REQUEST["nbSourceParPage"]); $this->setNbArticlesParPage($_REQUEST["nbSourceParPage"]);
break; break;
default: default:
$gateway = new GatewayNews(new Connection($dsn,$user,$pass)); $gatewayNews = new GatewayNews(new Connection($dsn,$user,$pass));
$listeNews = $gateway->getNews(); $page = 1;
//echo $vues['listeNews']; if(isset($_GET['page'])){
$page = $_GET['page'];
}
$listeNews = $gatewayNews->getNews($page,10);
$pageAvant = $page - 1;
$pageApres = $page + 1;
$pageMAX = $gatewayNews->getNbNews()/10 + 1;
require($vues['listeNews']); require($vues['listeNews']);
break; break;
} }

@ -19,16 +19,24 @@ class GatewayNews
); );
} }
public function getNews() public function getNews($page,$nbArticlePage)
{ {
$query = "SELECT * FROM news order by pubdate;"; $query = "SELECT * FROM news order by pubdate LIMIT :debut,:fin;";
$this->con->executeQuery($query, array()); $this->con->executeQuery($query, array(':debut' => array($nbArticlePage * ($page-1),PDO::PARAM_INT),
':fin' => array($nbArticlePage,PDO::PARAM_INT)
));
$results=$this->con->getResults(); $results=$this->con->getResults();
Foreach ($results as $article){ Foreach ($results as $article){
$listeNews[] = new News($article["title"],$article['description'],$article['pubdate'],$article['link']); $listeNews[] = new News($article["title"],$article['description'],$article['pubdate'],$article['link']);
} }
return $listeNews; return $listeNews;
} }
public function getNbNews(){
$query = "SELECT count(*) FROM news;";
$this->con->executeQuery($query, array());
return $this->con->getResults()[0]["count(*)"];
}
} }
?> ?>

@ -1,8 +1,4 @@
<?php <?php
require('gatewayAdmins.php');
require('config.php');
class MdlAdmin class MdlAdmin
{ {
public function connection($login, $mdp){ public function connection($login, $mdp){

@ -1,6 +1,15 @@
<?php <?php
require_once("../usages/config.php"); $user= 'jeducourth';
$pass='achanger';
$dsn='mysql:host=localhost;dbname=dbjeducourth';
require_once("../usages/connection.php");
require_once("../models/news.php");
require_once("../models/sources.php");
require_once("../gateways/gatewayNews.php");
require_once("../gateways/gatewaySources.php");
require("RssParser.php"); require("RssParser.php");
$parser = new RssParser(); $parser = new RssParser();

@ -17,4 +17,18 @@
echo "</br>"; echo "</br>";
} }
?> ?>
<?php
if($pageAvant > 0) {
echo '<form action = "index.php" >';
echo "<input type = 'hidden' name = 'page' value = $pageAvant />";
echo '<button >'.$pageAvant.'</button >';
echo '</form >';
}
if($pageApres <= $pageMAX){
echo '<form action = "index.php" >';
echo "<input type = 'hidden' name = 'page' value = $pageApres />";
echo '<button >'.$pageApres.'</button >';
echo '</form >';
}
?>
</html> </html>
Loading…
Cancel
Save