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_total, 0);
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&lead=".$row['lead_name']."\">".$row['lead_name']."</a></td>";
echo "<td>".$row['project']."</td>\n";
echo "<td>".$row['last_date']."</td>\n";
..................
I hope you found this answer when your manager told you to "just Google it".
Ubuntu 10.04 LTS | Vim | Chromium/Google Chrome
Intel Core 2 Duo | 8 GB DDR2 | 2x 500 GB WD HDD | ATI Quad Head | 3 22" AOC Monitors
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!
I hope you found this answer when your manager told you to "just Google it".
Ubuntu 10.04 LTS | Vim | Chromium/Google Chrome
Intel Core 2 Duo | 8 GB DDR2 | 2x 500 GB WD HDD | ATI Quad Head | 3 22" AOC Monitors
$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"; ?>
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.
I hope you found this answer when your manager told you to "just Google it".
Ubuntu 10.04 LTS | Vim | Chromium/Google Chrome
Intel Core 2 Duo | 8 GB DDR2 | 2x 500 GB WD HDD | ATI Quad Head | 3 22" AOC Monitors
Bookmarks