嗨我試圖在我的動態頁面上分頁。 我在腳本中使用PDO。我希望包含的分頁腳本是使用mysql,而不是使用PDO,所以我將mysql函數更改爲PDO函數。但我的問題是,與MySQL的腳本工作,並與pdo腳本沒有。如果我用PDO在腳本中單擊下一頁或第2頁,我也會獲得前10個記錄,而且我無法轉到上一頁。而在我的mysql腳本中,它工作得很好!動態頁面上的PHP分頁無法正常工作
我在Stackoverflow和互聯網上搜索了一個解決方案,但我找不到一個,所以有人知道我在做什麼錯?或者我可以如何解決這個問題?
我啓用了錯誤處理。而唯一的錯誤信息,我從與PDO劇本得到的是:
Notice: Undefined index: page on line 22
但是當我點擊下一步我再也不會收到此錯誤信息。
我的劇本與PDO:
<?php
include('php/loginHandlerconnect.php');
$db = loginHandlerconnect();
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
$tableName="vacature";
$targetpage = "testpaging3.php";
$limit = 10;
$query = "SELECT COUNT(vacatureID) AS num FROM $tableName";
$stmt = $db->prepare($query);
$stmt->execute();
$total_pages = $stmt->fetch(PDO::FETCH_ASSOC);
$total_pages = $total_pages['num'];
var_dump($total_pages); // output: string(2) "11" > after clicking on next: string(2) "11" string(1) "2"
$stages = 3;
var_dump($_GET['page']); // output: NULL
$page = (isset($_GET['page']));
if($page){
$start = ($page - 1) * $limit;
}else{
$start = 0;
}
// Get page data
$query1 = "SELECT vacature.*, werkgever.image, werkgever.plaats, werkgever.provincie, werkgever.naamBedrijf FROM vacature LEFT JOIN werkgever ON (vacature.werkgeverID = werkgever.werkgeverID) ORDER BY vacature.datum DESC LIMIT $start, $limit";
$result = $db->prepare($query1);
$result->execute();
$results = $result->fetchAll();
// Initial page num setup
if ($page == 0){$page = 1;}
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total_pages/$limit);
$LastPagem1 = $lastpage - 1;
$paginate = '';
if($lastpage > 1)
{
$paginate .= "<div class='paginate'>";
// Previous
if ($page > 1){
$paginate.= "<a href='$targetpage?page=$prev'>previous</a>";
}else{
$paginate.= "<span class='disabled'>previous</span>"; }
// Pages
if ($lastpage < 7 + ($stages * 2)) // Not enough pages to breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
}
elseif($lastpage > 5 + ($stages * 2)) // Enough pages to hide a few?
{
// Beginning only hide later pages
if($page < 1 + ($stages * 2))
{
for ($counter = 1; $counter < 4 + ($stages * 2); $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
$paginate.= "...";
$paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
$paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
}
// Middle hide some front and some back
elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2))
{
$paginate.= "<a href='$targetpage?page=1'>1</a>";
$paginate.= "<a href='$targetpage?page=2'>2</a>";
$paginate.= "...";
for ($counter = $page - $stages; $counter <= $page + $stages; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
$paginate.= "...";
$paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
$paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
}
// End only hide early pages
else
{
$paginate.= "<a href='$targetpage?page=1'>1</a>";
$paginate.= "<a href='$targetpage?page=2'>2</a>";
$paginate.= "...";
for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
}
}
// Next
if ($page < $counter - 1){
$paginate.= "<a href='$targetpage?page=$next'>next</a>";
}else{
$paginate.= "<span class='disabled'>next</span>";
}
$paginate.= "</div>";
}
echo $total_pages.' Results'; // output: 11 Results
foreach($results as $row)
{
$date = date("d-m-Y", strtotime($row['datum']));
echo "
<div class='vacatureinfo2'>
<img class='userimg2' src='../../uploads/userimage/". $row['image'] ."' id='imge'/>
<p class='func-br-pl pull-left'>". $row['functie'] ." - ". $row['naamBedrijf'] ." - ". $row['plaats'] ."</p><p class='dtm pull-right'>". $date ."</p>
<div class='omschrijvingkort2'>
". $row['omschrijvingKort'] ."
</div>
<p class='pull-right'><a href='reactie?id=" . $row['vacatureID'] . "'>Reageer</a> | <a href='informatie-vacature?id=" . $row['vacatureID'] . "'>Meer informatie</a></p>
</div>
<hr>";
}
// pagination
echo $paginate; // output: previous12next (previous and 1 are not working after clicking on next or 2)
?>
我的腳本與MySQL:
<?php
include('connect.php');
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
$tableName="vacature";
$targetpage = "testpaging2.php";
$limit = 10;
$query = "SELECT COUNT(vacatureID) as num FROM $tableName";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages['num'];
var_dump($total_pages); // output: string(2) "11" > after clicking on next: string(2) "11" string(1) "2"
$stages = 3;
var_dump($_GET['page']); // output: NULL
$page = mysql_escape_string($_GET['page']);
if($page){
$start = ($page - 1) * $limit;
}else{
$start = 0;
}
// Get page data
$query1 = "SELECT vacature.*, werkgever.image, werkgever.plaats, werkgever.provincie, werkgever.naamBedrijf FROM vacature LEFT JOIN werkgever ON (vacature.werkgeverID = werkgever.werkgeverID) ORDER BY vacature.datum DESC LIMIT $start, $limit";
$result = mysql_query($query1);
// Initial page num setup
if ($page == 0){$page = 1;}
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total_pages/$limit);
$LastPagem1 = $lastpage - 1;
$paginate = '';
if($lastpage > 1)
{
$paginate .= "<div class='paginate'>";
// Previous
if ($page > 1){
$paginate.= "<a href='$targetpage?page=$prev'>previous</a>";
}else{
$paginate.= "<span class='disabled'>previous</span>"; }
// Pages
if ($lastpage < 7 + ($stages * 2)) // Not enough pages to breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
}
elseif($lastpage > 5 + ($stages * 2)) // Enough pages to hide a few?
{
// Beginning only hide later pages
if($page < 1 + ($stages * 2))
{
for ($counter = 1; $counter < 4 + ($stages * 2); $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
$paginate.= "...";
$paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
$paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
}
// Middle hide some front and some back
elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2))
{
$paginate.= "<a href='$targetpage?page=1'>1</a>";
$paginate.= "<a href='$targetpage?page=2'>2</a>";
$paginate.= "...";
for ($counter = $page - $stages; $counter <= $page + $stages; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
$paginate.= "...";
$paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
$paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
}
// End only hide early pages
else
{
$paginate.= "<a href='$targetpage?page=1'>1</a>";
$paginate.= "<a href='$targetpage?page=2'>2</a>";
$paginate.= "...";
for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
}
}
// Next
if ($page < $counter - 1){
$paginate.= "<a href='$targetpage?page=$next'>next</a>";
}else{
$paginate.= "<span class='disabled'>next</span>";
}
$paginate.= "</div>";
}
echo $total_pages.' Results'; // output: 11 Results
while($row = mysql_fetch_array($result))
{
$date = date("d-m-Y", strtotime($row['datum']));
echo "
<div class='vacatureinfo2'>
<img class='userimg2' src='../../uploads/userimage/". $row['image'] ."' id='imge'/>
<p class='func-br-pl pull-left'>". $row['functie'] ." - ". $row['naamBedrijf'] ." - ". $row['plaats'] ."</p><p class='dtm pull-right'>". $date ."</p>
<div class='omschrijvingkort2'>
". $row['omschrijvingKort'] ."
</div>
<p class='pull-right'><a href='reactie?id=" . $row['vacatureID'] . "'>Reageer</a> | <a href='informatie-vacature?id=" . $row['vacatureID'] . "'>Meer informatie</a></p>
</div>
<hr>";
}
// pagination
echo $paginate; // output: previous12next (previous and 1 are working after clicking on next or 2)
?>
不幸的是,這種類型的問題是本網站的主題。 –
@YourCommonSense爲什麼它關閉主題?這是一個正常的問題! – Marjolein
哪行是行22,哪裏顯示錯誤? –