• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در صفحه بندی مطالب
#1
سلام بر همگی دوستان
طاعات و عباداتتون مورد قبول حق تعالی
در حال نوشتن برنامه ای هستم که در قسمت صفحه بندی مطالب به مشکل خوردم
زمانی که کاربر وارد پنل کاربریش میشه تمامی نامه های ثبت شده به درستی براش نمایش داده میشه و صفحه بندی نیز به درستی درج میشه مشکلم اینجاس که زمانی بر روی مثلا صفحه 2 کلیک می کنم صفحه دوم جدول نامه هام نمایش داده نمیشه
ممنونتون میشم نمونه قرار داده شده رو دانلود کنید و یه نگاهی بهش بندازین
با تشکر

نام کاربری : 808805254
رمز عبور : 1234

دانلود فایل نمونه
  پاسخ
تشکر شده توسط :
#2
دوست عزیز شما کد صفحه تون رو اینجا بزارین بهتره.و زودترم جواب میگیرین.Blush
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط : restles20
#3
http://pagination4php.codeplex.com/
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : restles20
#4
کد صفحه رو براتون قرار دادم

کد پی‌اچ‌پی:
<?php
    session_start
();
    
error_reporting(0);
    
    
define('security'true);
    
define('root_dir'dirname(__FILE__).'/');
    
define('engine_dir'root_dir 'engine/');
    
define('classes_dir'engine_dir 'classes/');
    
define('modules_dir'engine_dir 'modules/');
    
    require_once(
engine_dir 'init.php');
    
    if (!isset(
$_SESSION['user_id']))
        
header("location: login.php");
    else{        
        
$db->connect();
        
        
$page_letter 20;
        
$page $filter->purify($_GET["page"]);
        
        if (empty(
$page)) $page 1;
        
$start = ($page 1) * $page_letter;    
    };
?>
<!DOCTYPE html>
<html lang="fa">
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>پنل مدیریت</title>

        <link rel="stylesheet" type="text/css" href="assets/css/font-awesome/css/font-awesome.min.css">
        <link rel="stylesheet" type="text/css" href="assets/css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="assets/css/prettyPhoto.css">
        <link rel="stylesheet" type="text/css" href="assets/css/main.css">
        
        <script src="assets/js/jquery-1.8.3.min.js"></script>
        <script src="assets/js/maskedinput.min.js"></script> 
        <script src="assets/js/bootstrap.min.js"></script>
        <script src="assets/js/prettyPhoto.js"></script>     
        <script src="assets/js/custom.js"></script>
        
        <script type="text/javascript">
            $(document).ready(function(){
                $("a[rel^='prettyPhoto']").prettyPhoto({
                    animationSpeed: 'normal',
                    theme: 'light_rounded',
                    autoplay_slideshow: false,
                    allow_resize: true,
                    slideshow: false,
                    show_title:false,
                    hideflash: true,
                    default_width: 500,
                    default_height: 400,
                    overlay_gallery: false
                });
            });
        </script>
        <!--[if IE 7]>
            <link rel="stylesheet" type="text/css" href="assets/css/font-awesome/css/font-awesome-ie7.min.css">
        <![endif]-->
        <!--[if lt IE 9]>
            <script src="assets/js/html5shiv.min.js"></script>
        <![endif]-->
      </head>
      <body class="main">
        <header class="navbar navbar-fixed-top navbar-inverse">
            <div class="navbar-inner">
                <div class="container">
                    <a class="brand" href="index.php"></a>
                    <nav class="nav-collapse collapse">
                        <ul class="nav">
                            <li class="dropdown">
                                <a class="dropdown-toggle" href="#" data-toggle="dropdown">
                                    <i class="icon-user icon-white"></i>
                                    خوش آمدید ! <?php echo $_SESSION["name"] . " " $_SESSION["family"]; ?>
                                    <b class="caret"></b>
                                </a>
                                <ul class="dropdown-menu">
                                    <li>
                                        <a href="changepassword.php">
                                            <i class="icon-edit"></i>تغییر رمز عبور
                                        </a>
                                    </li>
                                    <li class="divider"></li>
                                    <li>
                                        <a href="logout.php"><i class="icon-off"></i>خروج</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </nav>
                </div>
            </div>
        </header>
        <div class="content">
            <aside class="sidebar">
                <section class="sidebar-inner">
                    <ul class="navi">
                        <li class="nlightblue current">
                            <a href="index.php">
                                <i class="icon-home icon-2x icon-white"></i>
                                پیشخوان
                          </a>
                        </li>
                    </ul>
                </section>
            </aside>
            <section class="mainbar">
                <header class="page-head">
                    <h2>
                        جستجو پرسنل
                        <span class="page-meta">شما در این صفحه  می توانید با وارد کردن شماره پرسنلی یک کاربر، کاربر مورد نظر خود را جستجو کرده و نامه های ثبت شده آنرا به نمایش در آورید.</span>
                    </h2>
                </header>
                <article class="matter">
                    <div class="alert alert-error">
                        <button type="button" class="close" data-dismiss="alert">&times;</button>
                        <p></p>
                    </div>
                    <section class="container-fluid">
                        <div class="row-fluid">
                            <div class="span12">
                                <div class="widget wlightblue">
                                    <header class="widget-head">جستجو کاربر</header>
                                    <form action="index.php" method="post">
                                    <article class="widget-content">
                                        <div class="padd">
                                            <div class="row-fluid">
                                                <div class="span2">
                                                    <div class="control-group">
                                                        <label for="personnel_code" class="control-label">شماره پرسنلی :</label>
                                                    </div>
                                                </div>
                                                <div class="span3">
                                                    <div class="control-group">
                                                        <div class="controls">
                                                            <input name="personnel_code" type="text" id="personnel_code"  class="span12 text-left" maxlength="9" tabindex="1" />
                                                        </div>
                                                    </div>
                                                  </div>
                                            </div>
                                            <div class="row-fluid">
                                                <div class="span2">
                                                    <div class="control-group">
                                                        <label for="type_letter" class="control-label">نوع نامه :</label>
                                                    </div>
                                                </div>
                                                <div class="span3">
                                                    <div class="control-group">
                                                        <div class="controls">
                                                            <select name="type_letter" id="type_letter" class="span12" tabindex="2">
                                                                <option value="all">تمامی نامه ها</option>
                                                                <option value="in">نامه های دورن سازمانی</option>
                                                                <option value="out">نامه های برون سازمانی</option>
                                                                <option value="etc">نامه های متفرقه</option>
                                                            </select>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </article>
                                    <footer class="widget-foot">
                                        <div class="row-fluid">
                                            <div class="span12">
                                                <div class="control-group">
                                                    <div class="controls">
                                                        <input name="search_user" type="submit" id="search_user" class="btn btn-success btn-large" value="جستجو کن !" />
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </footer>
                                    </form>
                                </div>
                            </div>
                        </div>
                    </section>
                    <?PHP
                        
if ($_POST['search_user']){
                            
$type_letter $filter->purify($_POST["type_letter"]);
                            
$personnel_code $filter->purify($_POST["personnel_code"]);
                            if (
$type_letter == "all")
                                
$sql "SELECT * FROM tbl_letters WHERE personnel_code='{$personnel_code}' ORDER BY date, id ASC LIMIT $start$page_letter";
                            else
                                
$sql "SELECT * FROM tbl_letters WHERE personnel_code='{$personnel_code}' AND type_letter='{$type_letter}' ORDER BY date, id ASC LIMIT $start$page_letter";
                            
$personnel_info $db->super_query("SELECT * FROM tbl_users WHERE personnel_code='{$personnel_code}'");
                            if (
$personnel_info 0){
                    
?>
                    <section class="container-fluid">
                        <div class="row-fluid">
                            <div class="span12">
                                <div class="widget wlightblue">
                                    <header class="widget-head"> مشخصات <?php echo $personnel_info["name"]; ?></header>    
                                    <article class="widget-content">                                        
                                        <div class="padd">
                                            <table class="table table-bordered table-hover">
                                                <thead>
                                                    <tr>
                                                        <th>تاریخ و شماره نامه</th>
                                                        <th>موضوع نامه</th>
                                                        <th>فرستنده نامه</th>
                                                        <th>تصویر نامه</th>
                                                        <th>عملیات</th>
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    <?php
                                                        $result 
$db->query($sql);
                                                        if (
$db->num_rows($result) > 0){
                                                            while(
$letters $db->fetch_assoc($result)){ 
                                                    
?>
                                                    <tr id="<?php echo "item_" $letters["id"]; ?>">
                                                        <td><?php echo $letters["date"] . " - " $letters["number"]; ?></td>
                                                        <td><?php echo $letters["subject"]; ?></td>
                                                        <td><?php echo $letters["sender"]; ?></td>
                                                        <td>
                                                        <?php
                                                            $pic 
substr(strrchr($letters["picture"], '.'), 1);
                                                            if (
$pic == "pdf")
                                                                echo 
"<a target=\"new\" href=\"{$letters["picture"]}\" class=\"btn btn-link\">نمایش</a>";
                                                            else
                                                                echo 
"<a href=\"{$letters["picture"]}\" class=\"btn btn-link\" rel=\"prettyPhoto\">نمایش</a>";
                                                        
?>
                                                        </td>
                                                        <td>
                                                            <a href="#edit" class="btn btn-warning">ویرایش</a>
                                                            <a href="index.php?delete_item=<?php echo $letters["id"]; ?>" id="<?php echo "delete_item_" $letters["id"]; ?>" class="btn btn-danger">حذف</a>
                                                        </td>
                                                    </tr>
                                                    <?php 
                                                            

                                                        } else{
                                                    
?>
                                                    <tr>
                                                        <td colspan="5" class="text-center text-success">نامه ای یافت نشد</td>
                                                    </tr>
                                                    <?php ?>
                                                </tbody>
                                            </table>
                                        </div>
                                    </article>
                                    <footer class="widget-foot">
                                        <div class="row-fluid">
                                            <div class="span6">
                                                <div class="pagination">
                                                    <ul>
                                                    <?php
                                                        
if ($db->num_rows($result) > 0){
                                                            
$total $db->query("SELECT id FROM tbl_letters WHERE personnel_code='{$personnel_code}'");
                                                            
$count $db->num_rows($total);
                                                            if(
$count $page_letter 0){
                                                                
$paged_total ceil($count $page_letter); 
                                                                
$paged_last $paged_total
                                                                
$paged_middle $page 4
                                                                
$paged_start $paged_middle 4;
                                                                if(
$page 1)
                                                                    
$paged_result '<li><a href="index.php?page=1">نخست</a></li>';                            
                                                                else
                                                                    
$paged_result '<li class="disabled"><a href="">نخست</a></li>';
                                                                if(
$page 1){
                                                                    
$paged_perv $page 1;
                                                                    
$paged_result .= '<li><a href="index.php?page='.$paged_perv.'">قبلی</a></li>';
                                                                } else
                                                                    
$paged_result .= '<li class="disabled"><a href="">قبلی</a></li>';
                                                                for (
$i $paged_start 2$i <= $paged_middle$i++){
                                                                    if (
$i && $i <= $paged_last){
                                                                        if(
$i == $page){
                                                                            
$paged_result .= '<li class="active"><a href="">'.$i.'</a></li>';
                                                                        } else{
                                                                            
$paged_result .= '<li><a href="index.php?page='.$i.'">'.$i.'</a></li>';
                                                                        };
                                                                    };
                                                                }
                                                                if(
$page <= $paged_last 1){
                                                                    
$paged_next $page 1//محاسبه لینک صفحه بعدی
                                                                    
$paged_result .= '<li><a href="index.php?page='.$paged_next.'">بعدی</a></li>';
                                                                } else
                                                                    
$paged_result .= '<li class="disabled"><a href="">بعدی</a></li>';
                                                                if(
$page <= $paged_last 1)
                                                                    
$paged_result .= '<li><a href="index.php?page='.$paged_last.'">آخر</a></li>';
                                                                else
                                                                    
$paged_result .= '<li class="disabled"><a href="">آخر</a></li>';
                                                                echo 
$paged_result;
                                                            } else{
                                                    
?>
                                                        <li class="disabled"><span>نخست</span></li>
                                                        <li class="disabled"><span>قبلی</span></li>
                                                        <li class="active"><span>1</span></li>
                                                        <li class="disabled"><span>بعدی</span></li>
                                                        <li class="disabled"><span>آخر</span></li>
                                                    <?php 
                                                            
}
                                                        } 
                                                    
?>
                                                    </ul>
                                                </div>
                                            </div>
                                        </div>
                                    </footer>
                                </div>
                            </div>
                        </div>
                    </section>
                    <?php 
                            
} else
                                echo 
'<script type="text/javascript">$(document).ready(function(e) {$(".alert").css("display","block");$(".alert p").html("<strong>خطا !</strong> کاربری با شماره پرسنلی وارد شده پیدا نشد.");});</script>'
                        } 
                    
?>
                </article>
            </section>
          </div>
    </body>
</html> 

حال لازمه که یه توضیح کوچیک هم در باره اش بدم
در خط 103 من اومدم کاربری رو که لاگین کرده چک کردم که مدیر هستش یا نه که براشون دو صفحه مجزا نمایش بدم

کد پی‌اچ‌پی:
<?php 
    
if (isset($_SESSION['user_admin']) && $_SESSION['user_admin'] == "1"){
?>

حال اگر کاربر وارد شده مدیر نباشه برنامه از خط 364 شروع به اجرا میشه

کد پی‌اچ‌پی:
<?php 
    
} else{ 
        
$personnel_info $db->super_query("SELECT * FROM tbl_users WHERE user_id='{$_SESSION['user_id']}'");
?>

و تمامی نامه های کاربری که لاگین شده در یک جدول لیست میشه و اگر بیشتر از 5 نامه در پایگاه داده ثبت شده باشه بصورت صفحه بندی در میاد و زمانی که بر روی فرضا 2 کلیک کنیم آدرس صفحه به index.php?page=2 تغییر پیدا می کنه و صفحه دوم جدول نامه ها به نمایش در میاد و الی آخر ولی اگر کاربر بصورت ادمین وارد بشه تمامی نامه های کاربری رو که مورد جستجو قرار داده به صورت یک جدول لیست می کنه و اگر بیشتر از 5 نامه پیدا شده باشه صفحه بندی میشه ( دقیقا مانند کاربر عادی) ولی مشکل ایجاس که زمانی که مدیر بر روی فرضا صفحه 2 کلیک می کنه آدرس به index.php?page=2 تغییر پیدا می کنه ولی بعد از بارگزاری صفحه جدول نامه ها و مشخصات کاربر جستجو شده پاک میشه

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

با تشکر
  پاسخ
تشکر شده توسط :
#5
کسی نیست کمکم کنه ؟؟؟
من نمی خوام از کلاسی که آقا رضا زحمتشو کشیدن و اینجا قرار دادن استفاده کنم
  پاسخ
تشکر شده توسط :
#6
سلام
500 خط گذاشتید میخواهید کسی بیاد خط به خط عیب یابی کنه؟
نحوه نوشتن برنامتون هم مشکل داره
بهتره تمام کارهایی که لازمه توی یه فایل انجام بدید مثل برسسی لاگین - کوئری زدن به دیتابیس و .....
بعد توی فایل دیگه بیایید فایل های html و css قرار بدید تو این فایل میتونید از متغییر data ها که در فایل قبلی درست شده (set شده) استفادده کنید
کدتون تمیز تر و قابل فهم تره
  پاسخ
تشکر شده توسط : restles20
#7
دوست عزیز به دلیل کمبود وقت مجبور بودم که به همین صورت بنویسم
کدهای اضافی تو پست 4 رو حذف کردم و اونجایی که مشکل دارم قرار دادم ازت خواهش می کنم یه نگاهی بهش بنداز و راهنماییم کن
  پاسخ
تشکر شده توسط :
#8
متاسفانه نمیشه خوند
این نحوه نوشتن اصلا جالب نیست
اومدید وسط برنامه کوئری زدید؟ Idea
طوری نوشتید که خودتون هم نمیتونید خطایابی کنید
سعی کنید کدهاتون تمیز تر و خواناتر باشه
متاسفانه نتونستم بخونم
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان