Jump to content

MySQL Queryies on Multiple pages


LeeRoy8888

Recommended Posts

Hi all,

I'm hoping someone can help me..... I'm struggling to write a fairly basic database search engine, I have most of it sorted out but i'm getting a few problems.

I ahev users defining a variable that is passed to another PHP file, the results.php. In this I have the following code.

[code]
$company=$_POST['company'];
[/code]

This seems to work fine. However I have justed added some code to enable the results to be split onto multiple pages.

Sample of the code below....
[code]
<?
$db_addr = 'localhost';        // address of MySQL server.
$db_user = 'thewight_admin';        // Username to access server.
$db_pass = 'password';        // Password access server.
$db_name = 'thewight_database';    // Name of database to connect to.
$connect = @mysql_connect("$db_addr", "$db_user", "$db_pass");

if (!($connect)) // If no connect, error and exit().
{
echo("<p>Unable to connect to the database server.</p>");
exit();
}

if (!(@mysql_select_db($db_name))) // If can't connect to database, error and exit().
{
echo("<p>Unable to locate the $db_name database.</p>");
exit();
}

if (!($limit)){
$limit = 10;} // Default results per-page.
if (!($page)){
$page = 0;} // Default page value.
$numresults = mysql_query("SELECT * FROM contacts WHERE company LIKE '%". $query ."%'"); // the query.
$numrows = mysql_num_rows($numresults); // Number of rows returned from above query.
if ($numrows == 0){
echo("No results found matching your query - $query"); // bah, modify the "Not Found" error for your needs.
exit();}

$pages = intval($numrows/$limit); // Number of results pages.

// $pages now contains int of pages, unless there is a remainder from division.

if ($numrows%$limit) {
$pages++;} // has remainder so add one page

$current = ($page/$limit) + 1; // Current page number.

if (($pages < 1) || ($pages == 0)) {
$total = 1;} // If $pages is less than one or equal to 0, total pages is 1.

else {
$total = $pages;} // Else total pages is $pages value.

$first = $page + 1; // The first result.

if (!((($page + $limit) / $limit) >= $pages) && $pages != 1) {
$last = $page + $limit;} //If not last results page, last result equals $page plus $limit.

else{
$last = $numrows;} // If last results page, last result equals total number of results.

//escape from PHP mode.
?>

<?
//Go back into PHP mode.

// Now we can display results.
$results = mysql_query("SELECT * FROM contacts WHERE company LIKE '%". $query ."%' ORDER BY company ASC LIMIT $page, $limit");
while ($data = mysql_fetch_array($results))
{
?>
<p><?=$data["company"]?>  <?=$data["address1"]?> <?=$data["phone"]?></p>
<?
}
?>
<p align="center">
<?
if ($page != 0) { // Don't show back link if current page is first page.
$back_page = $page - $limit;
echo("<a href=\"$PHP_SELF?query=$query&page=$back_page&limit=$limit\">back</a>    \n");}

for ($i=1; $i <= $pages; $i++) // loop through each page and give link to it.
{
$ppage = $limit*($i - 1);
if ($ppage == $page){
echo("<b>$i</b> \n");} // If current page don't give link, just text.
else{
echo("<a href=\"$PHP_SELF?query=$query&page=$ppage&limit=$limit\">$i</a> \n");}
}

if (!((($page+$limit) / $limit) >= $pages) && $pages != 1) { // If last page don't give next link.
$next_page = $page + $limit;
echo("    <a href=\"$PHP_SELF?query=$query&page=$next_page&limit=$limit\">next</a>\n");}
?>
</p>

[/code]

The problem is when I click the next page link, the code rerun's and the "$company=$_POST['company'];" doesn't work as the POST isn't avalaible from the previous phpfile.

Is there a way of making the $company variable remain?

Does this make any sense to anyone.... I'm a very new at PHP a need some help, PLEASE!!

Thanks in Advance.
Lee

Link to comment
Share on other sites

Hi,

Thanks for the fast reply. I have looked at the tutorial and the code is very similar to mine.

But, after reading the replies to the tutorial people are still having problems when using a variable that has been set by a POST from another file.

They all seem to get the problem when the next page is clicked the variable then isn't set and then all the records are shown.

Does anyone know how I can get around this problem?


Thanks Again in Advance!!

Lee
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.