مشکل در صفحه بندی

ithelper

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

PHP:
<?php
  require_once "config.php";
 session_start();
 if(!isset($_SESSION["user"]))
  header('location:index.php?error');
  $tbl_name="tv";  //your table name
  $adjacents = "20";
 
 /* 
    First get total number of rows in data table. 
    If you have a WHERE clause in your query, make sure you mirror it here.
 */
 $col = $_POST['search1'];
 $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE product = '$col'";
 $total_pages = mysql_fetch_array(mysql_query($query));
 $total_pages = $total_pages['num'];
 
 /* Setup vars for query. */
 $targetpage = "tvshow2.php";  
 $limit = 20;         //how many items to show per page
 $page = $_GET['page'];
 if($page) 
  $start = ($page - 1) * $limit;    //first item to display on this page
 else
  $start = 0;        //if no page var is given, set start to 0
 
 /* Get data. */
 $sql = "SELECT * FROM $tbl_name WHERE product = '$col' ORDER BY `ID` DESC LIMIT $start, $limit";
 $result = mysql_query($sql);
 
 /* Setup page vars for display. */
 if ($page == 0) $page = 1;     //if no page var is given, default to 1.
 $prev = $page - 1;       //previous page is page - 1
 $next = $page + 1;       //next page is page + 1
 $lastpage = ceil($total_pages/$limit);  //lastpage is = total pages / items per page, rounded up.
 $lpm1 = $lastpage - 1;      //last page minus 1
 
 /* 
  Now we apply our rules and draw the pagination object. 
  We're actually saving the code to a variable in case we want to draw it more than once.
 */
 $pagination = "";
 if($lastpage > 1)
 { 
  $pagination .= "<div class=\"pagination\">";
  //previous button
  if ($page > 1) 
   $pagination.= "<a href=\"$targetpage?page=$prev\">« previous</a>";
  else
   $pagination.= "<span class=\"disabled\">« previous</span>"; 
  
  //pages 
  if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
  { 
   for ($counter = 1; $counter <= $lastpage; $counter++)
   {
    if ($counter == $page)
     $pagination.= "<span class=\"current\">$counter</span>";
    else
     $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
   }
  }
  elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
  {
   //close to beginning; only hide later pages
   if($page < 1 + ($adjacents * 2))  
   {
    for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
    {
     if ($counter == $page)
      $pagination.= "<span class=\"current\">$counter</span>";
     else
      $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
    }
    $pagination.= "...";
    $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
    $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";  
   }
   //in middle; hide some front and some back
   elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
   {
    $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
    $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
    $pagination.= "...";
    for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
    {
     if ($counter == $page)
      $pagination.= "<span class=\"current\">$counter</span>";
     else
      $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
    }
    $pagination.= "...";
    $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
    $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";  
   }
   //close to end; only hide early pages
   else
   {
    $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
    $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
    $pagination.= "...";
    for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
    {
     if ($counter == $page)
      $pagination.= "<span class=\"current\">$counter</span>";
     else
      $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
    }
   }
  }
  
  //next button
  if ($page < $counter - 1) 
   $pagination.= "<a href=\"$targetpage?page=$next\">next »</a>";
  else
   $pagination.= "<span class=\"disabled\">next »</span>";
  $pagination.= "</div>\n";  
 }
  /*while($row = mysql_fetch_array($result))
  {
 
  // Your while loop here
 
  }
*/
$pagination
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" media="screen" />
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
<link href="images/favicon.png" rel="shortcut icon">
<title></title>
</head>
<body>
<div id="main">
 <div class="container">
     <div id="header">
        
        </div>
        <div id="content">
        
        <br/>
            <h5> محتویات سروش به شرح زیر می باشد :</h5>
            <form action="tvshow2.php?page=1" method="post" >
            نمایش بر اساس نوع محصول :
            <select name="search1" />
            <option value="#">-انتخاب کنید-</option>
            <option value="شعر" id="" >شعر</option>
            <option value="قصه" id="" >قصه</option>
            </select>
             
            <input type="submit" value="نمایش" />
            </form>
            
            <br/>
            <center>
            
            <table border="1">
          <tr>
                 <th>نوع محصول</th>
           <th>نام</th>
           <th>مجری</th>
           <th width="350">خلاصه</th>
                    <th>کد محصول</th>
                    <th>مشاهده</th>
          </tr>
          <?php 
          //$col = $_POST['search1'];
    //$query= "SELECT * FROM tv WHERE product = '$col'" ;
    
    //$result = mysql_query($query) or die ('invalid query');
    $count = mysql_num_rows($result);
    //exit();
    if ($result)
    {
          for($i = 0; $i < $count; $i++) {
           $row = mysql_fetch_assoc($result);
           echo '<tr>';
      echo '<td>';
             echo $row['product'];
            echo '</td>';
            echo '<td>';
             echo '<center>'.$row['name'].'</center>';
            echo '</td>';
            echo '<td>';
             echo $row['storyteller'];
            echo '</td>';
            echo '<td>';
             echo '<center>'.$row['summary'].'</center>';
            echo '</td>';
      echo '<td>';
             echo '<center>'.'TV-'.$row['ID'].'</center>';
            echo '</td>';
      echo '<td>';
             echo '<a href="tvcertificate.php?id='.$row['ID'].'">شناسنامه</a>';
            echo '</td>';
           echo '</tr>';
          }
          
          if($count == 0) {
           echo '<tr>';
            echo '<td colspan="6">';
             echo '<center>یافت نشد.</center>';
            echo '</td>';
           echo '</tr>';
          }
    }
          ?>
         </table>
            </center>
            <br/>
         <?php
            echo '<center>'.$pagination.'</center>';
   ?>
         <br/>
        
  </div>
        <div id="menucontent">
       
        <div class="menu">
        <ul>
        <li><a href="tv.php?page=1">سروش</a></li>
        <li><a href="radio.php?page=1">خانه رادیو</a></li>
        <li><a href="internal.php?page=1">منوهای داخلی</a></li>
        <li><a href="production.php">محتوای تولید</a></li>
        </ul>
        </div>
        </div>
        <div id="footer">
        
        </div>  
    </div>
</div>
</body>
</html>
 

ithelper

Member
خطاش مال زمانیه که میزنم صفحه2 یا 3...میزنه یافت نشد....نمیدونم این keyword رو بگم چطوری داخل صفحات نگه داره ....
 

iran-TEC

Member
متغیر $_post فقط برای صفحه اول ارسال می شه و در سایر صفحات دیده نمی شه چند تا راه داری

1- می تونی تو کدت چک کنی اگه $_post وجود داشت که از پست بگیری و متغیر پست رو توی سشن ذخیره کنی و اگه پست نبود از سشن مقدار رو بخونی

2- توسط $_get اون رو به سایر صفحات بفرستی

به نظر خودم مورد اول از نظر کارایی و امنیت بهتر هست

PHP:
if(isset($_POST['search1'])) {
    
    $col = $_POST['search1'];
    $_SESSION['search_string'] = $_POST['search1'];
}
else {
    
    $col = $_SESSION['search_string'];
}
 
آخرین ویرایش:

ithelper

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

ithelper

Member
دوستان لطفا کمک کنید....با کمک iran_TEC عزیز...مشکلم کمتر شد....
الان ایراد من به این صورت است که صفحه 1 را نشان می دهد.صفحه 2 را نشان می دهد. اما بدون pagination زیرش.این کدهای من است. آیا کسی هست کمک کنه؟ واقعا احتیاج دارم.
PHP:
<?php
  require_once "config.php";
 session_start();
 if(!isset($_SESSION["user"]))
  header('location:index.php?error');
  $tbl_name="tv";  //your table name
  $adjacents = "20";
         if(isset($_POST['search1'])) {
    
    $col = $_POST['search1'];
    $_SESSION['search_string'] = $_POST['search1'];
}
else {
    
    $col = $_SESSION['search_string'];
}  
 /* 
    First get total number of rows in data table. 
    If you have a WHERE clause in your query, make sure you mirror it here.
 */
 $col = $_POST['search1'];
 $query = "SELECT COUNT(*) as num FROM $tbl_name WHERE product = '$col'";
 $total_pages = mysql_fetch_array(mysql_query($query));
 $total_pages = $total_pages['num'];
 
 /* Setup vars for query. */
 $targetpage = "tvshow2.php";  
 $limit = 20;         //how many items to show per page
 $page = $_GET['page'];
$col = $_SESSION['search_string'];
 if($page) 
  $start = ($page - 1) * $limit;    //first item to display on this page
 else
  $start = 0;        //if no page var is given, set start to 0
 
 /* Get data. */
       $col = $_SESSION['search_string'];
 $sql = "SELECT * FROM $tbl_name WHERE product = '$col' ORDER BY `ID` DESC LIMIT $start, $limit";
 $result = mysql_query($sql);
 
 /* Setup page vars for display. */
 if ($page == 0) $page = 1;     //if no page var is given, default to 1.
 $prev = $page - 1;       //previous page is page - 1
 $next = $page + 1;       //next page is page + 1
 $lastpage = ceil($total_pages/$limit);  //lastpage is = total pages / items per page, rounded up.
 $lpm1 = $lastpage - 1;      //last page minus 1
 $col = $_SESSION['search_string'];
 /* 
  Now we apply our rules and draw the pagination object. 
  We're actually saving the code to a variable in case we want to draw it more than once.
 */
 $pagination = "";
 if($lastpage > 1)
 { 
                $col = $_SESSION['search_string'];
  $pagination .= "<div class=\"pagination\">";
  //previous button
  if ($page > 1) 
   $pagination.= "<a href=\"$targetpage?page=$prev\">« previous</a>";
  else
   $pagination.= "<span class=\"disabled\">« previous</span>"; 
  
  //pages 
  if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
  { 
                        $col = $_SESSION['search_string'];
   for ($counter = 1; $counter <= $lastpage; $counter++)
   {
    if ($counter == $page)
     $pagination.= "<span class=\"current\">$counter</span>";
    else
     $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
   }
  }
  elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
  {
                        $col = $_SESSION['search_string'];
   //close to beginning; only hide later pages
   if($page < 1 + ($adjacents * 2))  
   {
                                $col = $_SESSION['search_string'];
    for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
    {
     if ($counter == $page)
      $pagination.= "<span class=\"current\">$counter</span>";
     else
      $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
    }
    $pagination.= "...";
    $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
    $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";  
   }
   //in middle; hide some front and some back
   elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
   {
                                 $col = $_SESSION['search_string'];
    $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
    $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
    $pagination.= "...";
    for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
    {
     if ($counter == $page)
      $pagination.= "<span class=\"current\">$counter</span>";
     else
      $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
    }
    $pagination.= "...";
    $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
    $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";  
   }
   //close to end; only hide early pages
   else
   {
                                $col = $_SESSION['search_string'];
    $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
    $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
    $pagination.= "...";
    for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
    {
     if ($counter == $page)
      $pagination.= "<span class=\"current\">$counter</span>";
     else
      $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
    }
   }
  }
  
  //next button
  if ($page < $counter - 1) {
                        $col = $_SESSION['search_string'];
   $pagination.= "<a href=\"$targetpage?page=$next\">next »</a>";
}
  else{
                       $col = $_SESSION['search_string'];
   $pagination.= "<span class=\"disabled\">next »</span>";
  $pagination.= "</div>\n"; } 
 }
  /*while($row = mysql_fetch_array($result))
  {
 
  // Your while loop here
 
  }
*/
$pagination
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" media="screen" />
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
<link href="images/favicon.png" rel="shortcut icon">
<title></title>
</head>
<body>
<div id="main">
 <div class="container">
     <div id="header">
        
        </div>
        <div id="content">
        
        <br/>
            
            <form action="tvshow2.php?page=1" method="post" >
            نمایش بر اساس نوع محصول :
            <select name="search1" />
            <option value="#">-انتخاب کنید-</option>
            <option value="شعر" id="" >شعر</option>
            <option value="قصه" id="" >قصه</option>
            </select>
             
            <center>
            
            <table border="1">
          <tr>
                 <th>نوع محصول</th>
           <th>نام</th>
           <th>مجری</th>
           <th width="350">خلاصه</th>
                    <th>کد محصول</th>
                    <th>مشاهده</th>
          </tr>
          <?php 
          //$col = $_POST['search1'];
    //$query= "SELECT * FROM tv WHERE product = '$col'" ;
    
    //$result = mysql_query($query) or die ('invalid query');
    $count = mysql_num_rows($result);
    //exit();
    if ($result)
    {
          for($i = 0; $i < $count; $i++) {
           $row = mysql_fetch_assoc($result);
           echo '<tr>';
      echo '<td>';
             echo $row['product'];
            echo '</td>';
            echo '<td>';
             echo '<center>'.$row['name'].'</center>';
            echo '</td>';
            echo '<td>';
             echo $row['storyteller'];
            echo '</td>';
            echo '<td>';
             echo '<center>'.$row['summary'].'</center>';
            echo '</td>';
      echo '<td>';
             echo '<center>'.'TV-'.$row['ID'].'</center>';
            echo '</td>';
      echo '<td>';
             echo '<a href="tvcertificate.php?id='.$row['ID'].'">شناسنامه</a>';
            echo '</td>';
           echo '</tr>';
          }
          
          if($count == 0) {
           echo '<tr>';
            echo '<td colspan="6">';
             echo '<center>یافت نشد.</center>';
            echo '</td>';
           echo '</tr>';
          }
    }
          ?>
         </table>
            </center>
            <br/>
         <?php
            if (isset($_SESSION['search_string'])){
                           echo '<center>'.$pagination.'</center>';}
   ?>
         <br/>
        
  </div>
    </div>
</div>
</body>
</html>
 

جدیدترین ارسال ها

بالا