我无法理解如何修复此通知。它为$_GET[' ']
提供了一个未定义的索引,我无法设置isset()
,因为它会制造查询和代码。
class.php
private $perPage = 8;
private $startPage = 0;
public function latestArticles()
{
if($_GET['page'] <= 1) NOTICE ERROR <-- is here on the $_GET['page'];
$this->startPage = 0;
else
$this->startPage = $_GET['page'] * $this->perPage - $this->perPage;
$this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
$sth = $this->db->prepare("SELECT * FROM articles ORDER BY id DESC LIMIT ?, ?");
$sth->execute(array($this->startPage, $this->perPage));
$data = $sth->fetchAll();
return $data;
}
此代码在单击按钮时设置标题(下一个或上一个按钮)。如果你第一次加载页面,它没有像ex:www.site.com/那样加载的标题,所以它给出了错误,因为没有设置$_GET['page']
,但我无法解决这个问题..这里是我如何打印函数检索的数据。
index.php
<?php
if(!isset($_GET['page']))
$page = 1;
else
$page = $_GET['page'];
foreach($latestArticles as $article)
{
$title = $article['title'];
echo ''.$title.'';
}
$prev = $page-1;
$next = $page+1;
echo "
<a class='nxt_prevButton' href='?page=$prev'>previous page</a>
<a class='nxt_prevButton' href='?page=$next'>next page</a>
";
?>
我设置了isset()
和empty()
,但它不允许代码工作,这是下一个和上一个按钮,可获得更多结果,每页8个结果。 (通知消失但代码(查询)停止工作)。
通过修复代码,有什么方法可以解决这个问题?没有使用 error_reporting(0); ?
答案 0 :(得分:2)
你肯定需要使用isset
,这只是制定逻辑的问题。
我想,如果我理解这一点,你可以这样做:
if(!isset($_GET['page']) || $_GET['page'] <= 1)
$this->startPage = 0;
else
$this->startPage = $_GET['page'] * $this->perPage - $this->perPage;
因此,如果未设置$_GET['page']
,startPage
将为0。