PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : صفحه بندی php



alborzhost
October 31st, 2011, 23:16
سلام

دوستان صفحه بندی نیاز دارم بر فرض مثال اگه تعداد پست تو صفحه اول 5 تا بیشتر شد صفحه دیگه ایجاد کنه
لطفا لینک از سایت های دیگه ندید کسانی که واقعا بلد هستن اینجا راهنمایی کنن.

تشکر

Optimus
November 1st, 2011, 00:18
سلام
ابتدا داده ها را از دیتابیس بخونید ، سپس
کد بدین صورت هست :

//start with pagination system
$per_page = 3;
$total_pages = ceil($num / $per_page);
if (isset($_GET['page']) && is_numeric($_GET['page']))
{
$show_page = $_GET['page'];
if ($show_page > 0 && $show_page <= $total_pages)
{
$start = ($show_page -1) * $per_page;
$end = $start + $per_page;
}
else
{
$start = 0;
$end = $per_page;
}
}
else
{
$start = 0;
$end = $per_page;
}

?>
سپس باید صفحات را بخونید ، که کدش بدین صورت می شه :

<?php echo "<b>مشاهده به صورت صفحه بندی:</b> ";
for ($i = 1; $i <= $total_pages; $i++)
{
echo "<a href='view.php?page=$i'>صفحه ی $i</a> ";
}
?>

من حالت inline رو بهتون نشون دادم
روش های دیگری هم وجود داره

alborzhost
November 1st, 2011, 01:27
سلام

قسمت اول کد مطمئن هستید درست کار میکنه ؟

ahmad.m3710
November 1st, 2011, 01:47
پاسخ دوستمون رو تایید می کنم.

alborzhost
November 1st, 2011, 02:47
از دوستان کسی کار نکرده رو این موضوع ؟

اگه جواب منفی هست فردا خودم بشینم کار کنم روش

تشکر

---------- Post added at 01:38 AM ---------- Previous post was at 01:26 AM ----------

سلام

کد اصلی رو روش کار کردم و تموم شد فردا با کمی تغییرات پابلیک میکنم

تشکر

---------- Post added at 01:47 AM ---------- Previous post was at 01:38 AM ----------



<?php

include("data.php");

$resultt=mysql_query("select * from news");
$countofsqlrows=mysql_num_rows($resultt);
$posts=4;
$pagenumber=ceil($countofsqlrows/$posts);



if ( isset($_GET['page']) && $_GET['page']<=$pagenumber)
{

$p=$_GET['page'];
$row=$posts*$p;

if ($row==$posts)
{
$row2=0;
}else{

$row2=$row/2;

}


$result=mysql_query("SELECT * FROM `news` LIMIT $row2,$row ");
while($data=mysql_fetch_array($result))
{

echo $data['id'];
echo"<br />";
}


}


for ($i=1;$i<=$pagenumber;$i++)
{
echo "<a href='cn.php?page=$i'> $i</a> ";
}




?>

ahmad.m3710
November 1st, 2011, 02:49
دوست عزیز... عرض کردیم که کد ارائه شده درسته و یکی از روش ها همین هست .... بصورت این لاین ... امیدوارم مشکلتون حل شده باشه

alborzhost
November 1st, 2011, 03:00
این کدی که شما دادید قسمت اولش انگاری پاک شده !

ahmad.m3710
November 1st, 2011, 03:10
دوست عزیز امیدوارم این کد کمکتون کنه ...


$limit = "10";
if(isset($_GET['page']))
{
$pagesss = $_GET['page'];
$page = ($pagesss - 1) * $limit;
}
else
{
$page = 0;
}
$numresults = mysql_query("SELECT * FROM product order by pid desc");
$numrows = mysql_num_rows($numresults);
$pages = intval($numrows/$limit);
if ($numrows%$limit) {
$pages++;}
$current = ($page/$limit) + 1;
if (($pages < 1) || ($pages == 0)) {
$total = 1;}
else {
$total = $pages;}
$first = $page + 1;
if (!((($page + $limit) / $limit) >= $pages) && $pages != 1) {
$last = $page + $limit;} //If not last results page, last result equals $page plus $limit.
else{
$last = $numrows;
}
?>

Optimus
November 1st, 2011, 12:21
کد اول که دادم ، مشکلی نداره،فقط اطلاعات را باید SELECt کنید تا نشان بده