www.webdeveloper.com
Results 1 to 5 of 5

Thread: LIMIT Question (PHP/MySQL)

  1. #1
    Join Date
    Jun 2008
    Location
    Texas
    Posts
    84

    LIMIT Question (PHP/MySQL)

    Ok, here we go. I have a little "bug" of sorts for you guys. I have a table of leads, and would like to only display a certain number at a time. So it is all working, except that it seems like LIMIT only stopped them from being shown.

    So, atm, I have 4 leads, and showing 2 per page. That all works fine, but when I use one of my sort by links (which is just a URL with GET/POST), it only shows 2 still, but it can show results that were not shown before. Like the results are there, just hidden by my LIMIT. I need the SELECT command to ONLY ready the results that are in my limit range(Ignoring all others). And I cannot use GID because they won't be showing in order like that. Users only have permissions to certain rows. Thanks guys!

    Where the rows are readied.
    PHP Code:
    $ready_total="SELECT COUNT(*) FROM properties WHERE users LIKE '%$current_user%'";
        
    $lead_list "SELECT * 
    FROM properties 
    WHERE users LIKE '%
    $current_user%' 
    ORDER BY 
    $order_by $order_way
    LIMIT 
    $base,$results_per_page";
        
    $get_total mysql_query($ready_total) or die (mysql_error());
        
    $project_info mysql_query($lead_list) or die (mysql_error());
        
    $total_leads=mysql_result($get_total0); 
    And where it is outputted (I have cut it off, you get the idea)

    PHP Code:
    while ($row mysql_fetch_array($project_info)) {
        
    //outputs the data from the SQL database
    echo "<tr>";
    echo 
    "<td><a href=\"blank.php?type=lead_page&amp;lead=".$row['lead_name']."\">".$row['lead_name']."</a></td>";
    echo 
    "<td>".$row['project']."</td>\n";
    echo 
    "<td>".$row['last_date']."</td>\n";
    .................. 

  2. #2
    Join Date
    Nov 2007
    Location
    Ohio
    Posts
    308
    We need the background on your $base and $results_per_page variables.

  3. #3
    Join Date
    Jun 2008
    Location
    Texas
    Posts
    84
    Quote Originally Posted by sstalder
    We need the background on your $base and $results_per_page variables.

    The base is being pulled correctly each time, and the $results_per_page I understand to be the total you want to display per page.

    I set the $results_per_page manually in the script for testing, and the base is pulled by
    PHP Code:
        function getbase($page_number$results_per_page) {
            global 
    $base;
            
    $page = ($page_number 1);
            
    $base = ($results_per_page*$page);
        }
        
        
    getbase ($page$results_per_page); 
    I do know that each number that is being set/that I set is correct, it just seems that the ORDER BY is sorting results that are not in my LIMIT. Thanks, and I hope that I have given enough info. If you would like to see the actual page, PM me and I will assign you a test account. Thanks!

  4. #4
    Join Date
    Nov 2007
    Location
    Ohio
    Posts
    308
    Here is a very very stripped down basic version that should give you the general idea of pagination:
    PHP Code:
    <?PHP
    $page_number 
    = (!empty($_GET['page'])) ? $_GET['page'] : 1;
    $max_results 4;
    $from = (($page_number $max_results) - $max_results);

    $total_results = @mysql_result(mysql_query("SELECT COUNT(*) FROM properties WHERE users LIKE '%$current_user%'"),0);
    $total_pages = @ceil($total_results $max_results);

    $lead_list "SELECT *
                    FROM properties
                    WHERE users LIKE '%
    $current_user%'
                    ORDER BY 
    $order_by $order_way
                    LIMIT 
    $from,$max_results";
    ?>

  5. #5
    Join Date
    Jun 2008
    Location
    Texas
    Posts
    84

    Thanks!

    Quote Originally Posted by sstalder
    Here is a very very stripped down basic version that should give you the general idea of pagination:
    PHP Code:
    $total_results = @mysql_result(mysql_query("SELECT COUNT(*) FROM properties WHERE users LIKE '%$current_user%'"),0);
    $total_pages = @ceil($total_results $max_results); 
    There we go. @ceil is what I was looking for. I will play with it a bit later today, but I am pretty sure that is exactly what I need. Thanks a lot, and I might have another question soon, but lets just hope I can post "It works!". Thanks again.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

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



Recent Articles