SitePoint Sponsor

User Tag List

Results 1 to 6 of 6
  1. #1
    SitePoint Enthusiast
    Join Date
    Dec 2009
    Location
    Port Harcourt
    Posts
    58
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Adding Display Options To My Search Result

    Good day all. I'm working on a project involving listing all the asset a company has. The page (assetList.php) whose code I post below checks through the database and list all the assets when it loads. The pagination function is working fine and the default set of assets to be listed per page as you will see under function.php is 20. I want to a PRACTICAL EXAMPLE of what to do so that users/viewers can decide how many set per page they want to view by using a drop down menu which has options like 10, 20, 50, all. Thanks in advance. The codes now.

    assetList.php

    PHP Code:
    <?php 

    @session_start();
    if(isset(
    $_SESSION['userName'])) $_SESSION['userName'];

    //connect to the database
        
    include_once ('DatabaseManager.php'); 
        
    $conn DatabaseManager::getConnection();
        
    //get the function
        
    include_once ('function.php');

            
    $page = (int) (!isset($_GET["page"]) ? $_GET["page"]);
            
    $limit 20;
            
    $startpoint = ($page $limit) - $limit;
            
            
    //to make pagination
            
    $statement "`myasset`";


    require_once 
    'classes/Config.php';
     
    $result = new ECConfig();
    $result2 = new ECConfig();
    $result3 = new ECConfig();
    $result->getSiteName();
    $result2->getSiteNickName();
    $result3->getCurrency();
    ?>

    <!DOCTYPE html>
    <!--[if IE 8]>                  <html class="no-js lt-ie9" lang="en" > <![endif]-->
    <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->

    <head>
        <meta charset="utf-8" />
      <meta name="viewport" content="width=device-width" />
      <title><?php echo $result->getSiteName(); ?>  | Asset Manager</title>
      <link href="../css/normalize.css" rel="stylesheet" />
      <link href="../css/foundation.css" rel="stylesheet" />
      <link href="../css/pagination.css" rel="stylesheet" type="text/css" />
      <link href="../css/B_blue.css" rel="stylesheet" type="text/css" />
      <link href="../main.css" rel="stylesheet" type="text/css" media="all">
      <script src="../js/vendor/custom.modernizr.js"></script>


    </head>
    <body>
    <?php $query $conn->query("SELECT * FROM {$statement} ORDER BY id DESC LIMIT {$startpoint} , {$limit}"); ?>
    <?php $assetRegister 
    $conn->query("SELECT * FROM {$statement}"); 
          
    $asset $assetRegister->rowCount(); ?>
         <div class="contain-to-grid">                    
                        <div class="top-bar text-center">
                        
                            <h3 class="dammy1"><?php echo $result->getSiteName(); ?></h3>
                            <h5 class="subheader"><?php echo $result->getSiteNickName(); ?></h5>
                        
        </div>
          </div>
          
     <!-- The part above takes care of the banner region -->
          
          <div class="row">
          <div class="breadcrumbs">
          <div class="large-7 columns">
            <a href="../homepage.php">Main Home</a> || <a href="index.php">Asset Manager Home</a> 
            </div>
            <div class="large-5 columns">
            You are logged in as <?php if(isset($_SESSION['userName'])) echo $_SESSION['userName']; ?> || <a href="index.php?action=logout" title="Log Out">Log Out <img src="../img/quit.png" alt="Log Out" /></a> 
            </div>
          </div> 
          </div>  
          
          <br/>   
          <div class="row">  
            <div class="large-9 columns">
            <?php include 'assetConsole.php'?>
            </div>
            
            <div class="large-3 columns">
            <?php include 'mainMenu.php'?>
            </div>
            
            </div><!--closing tag for the first row -->
            
            <div class="row">
            <div class="large-12 columns">
            <?php if(isset($query)): ?>
            <p class="searchResult">      
            <?php
              
    if(isset($asset)) {
              
              if(
    $asset == 0)
              {
                   echo 
    'There is no record of any asset in the database.';
              }
              if(
    $asset == 1)
              {
                  echo 
    'There is 1 record of asset in the database.';
              }
              if(
    $asset 1)
              {
                  echo 
    "There are $asset records of asset in the database.";
              }
              }
              
    ?>
              </p>
             <div class="large-4 columns panel"><h5>Asset Name</h5></div>
             <div class="large-3 columns panel"><h5>Cost Per Unit(In Figures)</h5></div>
             <div class="large-2 columns panel"><h5>Status</h5></div>
             <div class="large-3 columns panel"><h5>Action</h5></div>
                    
             <?php foreach($query as $i=>$asset): ?>
                    
                    <div class="large-4 columns"><?php if(isset($asset['productName'])) echo ($asset['productName']); else echo 'Not Available'?></div>
                    <div class="large-3 columns"><?php if(isset($asset['costPerUnitInFigures']))  echo ($asset['costPerUnitInFigures']); ?></div>
                    <div class="large-2 columns"><?php if(isset($asset['status'])) echo ($asset['status']); ?></div>
                    <div class="large-3 columns">
                     <form action="index.php" method="post">
                    <div>
                      <input type="hidden" name="id" value="<?php  echo htmlentities($asset['id']); ?>"/>
                      <input type="submit" name="action" value="Edit" class="button myconsole2 radius" />
                      <input type="submit" name="action" value="Print PDF" class="button myconsole2 radius" />
                      <input type="submit" name="action" value="Delete" onclick="return confirm('Delete This Asset?')" class="button myconsole2 radius" />
                      
                    </div>
                  
                  </form>
                    </div>
                 <hr/>
                 <?php endforeach; ?>
              

            <?php endif; ?>
            <div class="large-12 columns paginate"><?php echo pagination($statement$limit$page); ?></div>
            
            </div>
            
         </div>
         
       
            
    <br/>
    <br/>
    <br/>
    <!-- Footer -->
    <div class="wrapper row2">
      <div class="row">&nbsp;
      <br/>
       </div>
       </div> 
    <div class="wrapper row4">
      <div class="row">
      <?php include 'mainFooter.php'?>
      </div>
    </div>

    </body>
    </html>

    function.php
    PHP Code:
    <?php

       
       
    function pagination($query$per_page 10,$page 1$url '?'){ 
       include_once (
    'DatabaseManager.php'); 
       
    $conn DatabaseManager::getConnection();
               
            
    $query "SELECT COUNT(*) as `num` FROM {$query}";
            foreach(
    $conn->query($query) as $row);
            
    $total $row['num'];
            
    $adjacents "2"
            
            
    //Ronald's code begings
            
    $url '?';
            foreach(
    $_GET as $k => $v) {
            if(
    $k != 'page') {
            
    $url .= "{$k}={$v}&";
              }
            }
            
    //Ronald's code ends

            
    $page = ($page == $page);  
            
    $start = ($page 1) * $per_page;                                
            
            
    $prev $page 1;                            
            
    $next $page 1;
            
    $lastpage ceil($total/$per_page);
            
    $lpm1 $lastpage 1;
            
            
    $pagination "";
            if(
    $lastpage 1)
            {    
                
    $pagination .= "<ul class='pagination'>";
                        
    $pagination .= "<li class='details'>Page $page of $lastpage</li>";
                if (
    $lastpage + ($adjacents 2))
                {    
                    for (
    $counter 1$counter <= $lastpage$counter++)
                    {
                        if (
    $counter == $page)
                            
    $pagination.= "<li><a class='current'>$counter</a></li>";
                        else
                            
    $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                    }
                }
                elseif(
    $lastpage + ($adjacents 2))
                {
                    if(
    $page + ($adjacents 2))        
                    {
                        for (
    $counter 1$counter + ($adjacents 2); $counter++)
                        {
                            if (
    $counter == $page)
                                
    $pagination.= "<li><a class='current'>$counter</a></li>";
                            else
                                
    $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                        }
                        
    $pagination.= "<li class='dot'>...</li>";
                        
    $pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
                        
    $pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";        
                    }
                    elseif(
    $lastpage - ($adjacents 2) > $page && $page > ($adjacents 2))
                    {
                        
    $pagination.= "<li><a href='{$url}page=1'>1</a></li>";
                        
    $pagination.= "<li><a href='{$url}page=2'>2</a></li>";
                        
    $pagination.= "<li class='dot'>...</li>";
                        for (
    $counter $page $adjacents$counter <= $page $adjacents$counter++)
                        {
                            if (
    $counter == $page)
                                
    $pagination.= "<li><a class='current'>$counter</a></li>";
                            else
                                
    $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                        }
                        
    $pagination.= "<li class='dot'>..</li>";
                        
    $pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
                        
    $pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";        
                    }
                    else
                    {
                        
    $pagination.= "<li><a href='{$url}page=1'>1</a></li>";
                        
    $pagination.= "<li><a href='{$url}page=2'>2</a></li>";
                        
    $pagination.= "<li class='dot'>..</li>";
                        for (
    $counter $lastpage - (+ ($adjacents 2)); $counter <= $lastpage$counter++)
                        {
                            if (
    $counter == $page)
                                
    $pagination.= "<li><a class='current'>$counter</a></li>";
                            else
                                
    $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                        }
                    }
                }
                
                if (
    $page $counter 1){ 
                    
    $pagination.= "<li><a href='{$url}page=$next'>Next</a></li>";
                    
    $pagination.= "<li><a href='{$url}page=$lastpage'>Last</a></li>";
                }else{
                    
    $pagination.= "<li><a class='current'>Next</a></li>";
                    
    $pagination.= "<li><a class='current'>Last</a></li>";
                }
                
    $pagination.= "</ul>\n";        
            }
        
        
            return 
    $pagination;
        } 
    ?>

  2. #2
    SitePoint Enthusiast
    Join Date
    Dec 2009
    Location
    Port Harcourt
    Posts
    58
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Please, is there nobody to help with this?

  3. #3
    Hosting Team Leader silver trophybronze trophy
    cpradio's Avatar
    Join Date
    Jun 2002
    Location
    Ohio
    Posts
    4,810
    Mentioned
    141 Post(s)
    Tagged
    0 Thread(s)
    There are several ways, the gist of the matter you need a way to either pass the number of items per page along using the URL or using SESSION.

    In using session, you'd have something like this to read the limit you are to use:
    PHP Code:
    $limit 20;
    if (isset(
    $_SESSION['items_per_page']) && is_numeric($_SESSION['items_per_page']))
      
    $limit intval($_SESSION['items_per_page']); 
    So that leaves you with, okay, how do I set the SESSION value? Via a form, most likely...
    HTML Code:
    <form method="post" action="yourpage.php">
    Items per Page: 
    <select name="items_per_page">
      <option value="10">10</option>
      <option value="20">20</option>
      <option value="50">50</option>
    </select>
    <input type="submit" name="submit" value="Save" />
    </form>
    Process the form values:
    PHP Code:
    if (isset($_POST['items_per_page']) && is_numeric($_POST['items_per_page']))
      
    $_SESSION['items_per_page'] = $_POST['items_per_page']; 
    Be sure to congratulate xMog on earning April's Member of the Month
    Go ahead and blame me, I still won't lose any sleep over it
    My Blog | My Technical Notes

  4. #4
    SitePoint Enthusiast
    Join Date
    Dec 2009
    Location
    Port Harcourt
    Posts
    58
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Cpradio, thanks a lot man. You're always there helping newbies out. I will implement your solution now.. God bless you.

  5. #5
    SitePoint Enthusiast
    Join Date
    Dec 2009
    Location
    Port Harcourt
    Posts
    58
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Cpradio, I'm sorry for getting back to you late. It worked for me that same day. Thanks a lot.

  6. #6
    Hosting Team Leader silver trophybronze trophy
    cpradio's Avatar
    Join Date
    Jun 2002
    Location
    Ohio
    Posts
    4,810
    Mentioned
    141 Post(s)
    Tagged
    0 Thread(s)
    Not a problem, glad it worked out for you
    Be sure to congratulate xMog on earning April's Member of the Month
    Go ahead and blame me, I still won't lose any sleep over it
    My Blog | My Technical Notes


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •