我正在尝试切换到使用PDO。我在我的网站上创建了一个新闻栏目。 我的数据库连接包含在我的标题
中我目前正在使用它来创建分页,但需要帮助添加我的帖子
至$data = array("Hey","Hello","Good-Bye");
截至目前,嘿,Hello和再见是唯一与分页合作的项目。
有人能帮我得到这个结果:$data = array("add my post here")
以下是我的代码:我的数据库连接位于标题部分。
<?php
class Pagination{
var $data;
function Paginate($values,$per_page){
$total_values = count($values);
if(isset($_GET['page']))
{
$current_page = $_GET['page'];
}
else
{
$current_page = 1;
}
$counts = ceil($total_values / $per_page);
$param1 = ($current_page - 1) * $per_page;
$this->data = array_slice($values,$param1,$per_page);
for ($x=1; $x<= $counts; $x++)
{
$numbers[] = $x;
}
return $numbers;
}
function fetchResult(){
$resultsValues = $this->data;
return $resultsValues;
}
}
?>
我假设我需要<ul class="notices"> - </ul>
(如下所示)$data = array("Hey","Hello","Good-Bye");
下方 <ul class="notices">
<?php
$query = $db->query("SELECT id, date, title, description FROM htp_news");
while ($row = $query->fetch(PDO::FETCH_ASSOC))
{
?>
<li data-id="id-<?=$row["id"] ?>">
<article class="box white-bg mb-25">
<div class="notices-title"><?=$row["title"] ?></div>
<div class="newsdate" style="margin: 10px 0 !important;"><?= date("F d, Y", strtotime($row["date"])); ?></div>
<div class="articletext"><style>.articletext img{width:100%; height:auto;}</style><?php $string = $row["description"];
$max = 300; // or 200, or whatever
if(strlen($string) > $max) {
// find the last space < $max:
$shorter = substr($string, 0, $max+1);
$string = substr($string, 0, strrpos($shorter, ' ')).'...';
}
echo $string;
?></div>
<div class="btn small green white-tx"><a href="http://<?php echo $_SERVER['SERVER_NAME']; ?>/htp-news.php?id=<?=$row["id"] ?>">Continue Reading</a></div>
</article>
</li>
<?php
}
?>
</ul>
<div class="grid_8">
<div class="paginationwrap" align="center">
<!--This is where the pagination numbers are being generated-->
<?php
$pag = new Pagination();
$data = array("Hey","Hello","Good-Bye");//This is where I'm getting confused..?
$numbers = $pag->Paginate($data,1);
$result = $pag->fetchResult();
foreach($result as $r)
{
echo '<div>'.$r.'</div>';
}
foreach($numbers as $num)
{
echo'<a href="hydro-transpak-news.php?page='.$num.'">'.$num.'</a>';
}
?>
不知道如何做到这一点?
{{1}}
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
不知道为什么需要它,但为了避免重复代码和javascript,您可以这样做,然后将数据放在$inside_ul
变量中。
<?php
$query = $db->query("SELECT id, date, title, description FROM htp_news");
$inside_ul = '';
while ($row = $query->fetch(PDO::FETCH_ASSOC))
{
$inside_ul .= '
<li data-id="id-'.$row["id"].'">
<article class="box white-bg mb-25">
<div class="notices-title">'.$row["title"].'</div>
<div class="newsdate" style="margin: 10px 0 !important;">'.date("F d, Y", strtotime($row["date"])).'</div>
<div class="articletext"><style>.articletext img{width:100%; height:auto;}</style>
';
$string = $row["description"];
$max = 300; // or 200, or whatever
if(strlen($string) > $max) {
// find the last space < $max:
$shorter = substr($string, 0, $max+1);
$string = substr($string, 0, strrpos($shorter, ' ')).'...';
}
$inside_ul .= $string.'</div>
<div class="btn small green white-tx">
<a href="http://'.$_SERVER['SERVER_NAME'].'/htp-news.php?id='.$row["id"].'">Continue Reading</a>
</div>
</article>
</li>
';
}
?>
<ul class="notices"><?= $inside_ul; ?></ul>